File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    00413680
    00413680fn_413680:
    00413680push rbp
    00413681push rsi
    00413682push rbx
    00413683sub rsp, 48
    00413687mov rbp, rsp
    0041368amov rbx, rcx
    0041368dmov rcx, rbx
    00413690lea r8, [rbp+44]
    00413694call fn_413550
    00413699mov rsi, rax
    0041369ctest rsi, rsi
    0041369fje 0x4136f6
    004136a1mov eax, [rbp+44]
    004136a4cmp eax, [rbx+8]
    004136a7jge 0x4136f6
    004136a9mov eax, [rbx+8]
    004136acmov ecx, eax
    004136aesub ecx, 1
    004136b1cmp [rbp+44], ecx
    004136b4jge 0x4136ef
    004136b6mov rcx, [rbx+16]
    004136bamov edx, [rbp+44]
    004136bdadd edx, 1
    004136c0movsxd rdx, edx
    004136c3lea rcx, [rcx+8*rdx]
    004136c7mov rdx, [rbx+16]
    004136cbmovsxd r8, [rbp+44]
    004136cflea rdx, [rdx+8*r8]
    004136d3mov r8l, eax
    004136d6sub r8l, [rbp+44]
    004136dasub r8l, 1
    004136deadd r8l, r8l
    004136e1add r8l, r8l
    004136e4add r8l, r8l
    004136e7movsxd r8, r8l
    004136eacall fn_405ac0
    004136ef
    004136efloc_4136ef:
    004136eflea rax, [rbx+8]
    004136f3sub [rax], 1
    004136f6
    004136f6loc_4136f6:
    004136f6mov rax, rsi
    004136f9lea rsp, [rbp+48]
    004136fdpop rbx
    004136fepop rsi
    004136ffpop rbp
    00413700ret
    00413680
    00413701
    00413701 // align 0x10
    00413710
    00413710fn_413710:
    00413710sub rsp, 40
    00413714cmp [rip+0x52274], 0
    0041371cje 0x413726
    0041371emov rcx, [rcx]
    00413721call fn_409c20
    00413726
    00413726loc_413726:
    00413726add rsp, 40
    0041372aret
    00413710
    0041372b
    0041372b // align 0x10
    00413730
    00413730fn_413730:
    00413730sub rsp, 40
    00413734mov [rsp+48], rcx
    00413739mov rcx, [rsp+48]
    0041373emov r8l, 1
    00413744mov eax, r8l
    00413747lock xadd [rcx+16], r8l
    0041374dadd eax, r8l
    00413750cmp eax, 512
    00413756jg 0x4137d2
    00413758mov rax, [rsp+48]
    0041375dmov r8l, 1
    00413763mov rcx, r8
    00413766lock xadd [rax+8], r8
    0041376cadd rcx, r8
    0041376f
    0041376floc_41376f:
    0041376fmov rax, [rsp+48]
    00413774mov r8, [rax]
    00413777mov rax, 0xffffffffffff
    00413781mov r9, r8
    00413784and r9, rax
    00413787mov rax, 0x800000000000
    00413791mov r10, r8
    00413794and r10, rax
    00413797lea rax, [r10-1]
    0041379bnot rax
    0041379eor r9, rax
    004137a1mov [rdx], r9
    004137a4mov r9, [rsp+48]
    004137a9mov rax, 0xffffffffffff
    004137b3mov r10, rdx
    004137b6and r10, rax
    004137b9mov rax, rcx
    004137bcshl rax, 48
    004137c0or r10, rax
    004137c3mov rax, r8
    004137c6lock cmpxchg [r9], r10
    004137cbcmp rax, r8
    004137cejne 0x41376f
    004137d0jmp 0x4137e7
    004137d2
    004137d2loc_4137d2:
    004137d2mov rax, [rsp+48]
    004137d7or ecx, -1
    004137dalock xadd [rax+16], ecx
    004137dfmov rcx, rdx
    004137e2call fn_413090
    004137e7
    004137e7loc_4137e7:
    004137e7add rsp, 40
    004137ebret
    00413730
    004137ec
    004137ec // align 0x10
    004137f0
    004137f0fn_4137f0:
    004137f0push rbx
    004137f1sub rsp, 32
    004137f5mov rbx, rdx
    004137f8call fn_413810
    004137fdtest rax, rax
    00413800jne 0x413807
    00413802call fn_412f30
    00413807
    00413807loc_413807:
    00413807mov [rax], rbx
    0041380aadd rsp, 32
    0041380epop rbx
    0041380fret
    004137f0
    00413810
    00413810fn_413810:
    00413810mov [rsp+8], rcx
    00413815mov rax, [rsp+8]
    0041381amov ecx, 1
    0041381fmov rdx, rcx
    00413822lock xadd [rax+8], rcx
    00413828add rdx, rcx
    0041382b
    0041382bloc_41382b:
    0041382bmov rax, [rsp+8]
    00413830mov r8, [rax]
    00413833mov rax, 0xffffffffffff
    0041383dmov rcx, r8
    00413840and rcx, rax
    00413843mov rax, 0x800000000000
    0041384dmov r9, r8
    00413850and r9, rax
    00413853lea rax, [r9-1]
    00413857not rax
    0041385aor rcx, rax
    0041385dtest rcx, rcx
    00413860je 0x413891
    00413862mov rax, [rcx]
    00413865mov r9, [rsp+8]
    0041386amov r10, 0xffffffffffff
    00413874mov r11, rax
    00413877and r11, r10
    0041387amov rax, rdx
    0041387dshl rax, 48
    00413881or r11, rax
    00413884mov rax, r8
    00413887lock cmpxchg [r9], r11
    0041388ccmp rax, r8
    0041388fjne 0x41382b
    00413891
    00413891loc_413891:
    00413891nop
    00413892test rcx, rcx
    00413895je 0x4138a4
    00413897mov rax, [rsp+8]
    0041389cor edx, -1
    0041389flock xadd [rax+16], edx
    004138a4
    004138a4loc_4138a4:
    004138a4mov rax, rcx
    004138a7ret
    00413810
    004138a8
    004138a8 // align 0x10
    004138b0
    004138b0fn_4138b0:
    004138b0push rdi
    004138b1push rsi
    004138b2push rbx
    004138b3sub rsp, 32
    004138b7mov rbx, rcx
    004138bacmp [rbx+4760], 0
    004138c1je 0x413905
    004138c3mov edi, 197
    004138c8lea rsi, [rbx+32]
    004138cc
    004138ccloc_4138cc:
    004138ccmov rcx, rsi
    004138cfcall fn_4135e0
    004138d4add rsi, 24
    004138d8sub edi, 1
    004138dbtest edi, edi
    004138ddjne 0x4138cc
    004138dfnop
    004138e0
    004138e0loc_4138e0:
    004138e0mov rcx, rbx
    004138e3call fn_413810
    004138e8mov rcx, rax
    004138ebcall fn_413090
    004138f0test al, al
    004138f2jne 0x4138e0
    004138f4mov rax, [rbx+24]
    004138f8test rax, rax
    004138fbje 0x413905
    004138fdmov rcx, rax
    00413900call fn_4098e0
    00413905
    00413905loc_413905:
    00413905add rsp, 32
    00413909pop rbx
    0041390apop rsi
    0041390bpop rdi
    0041390cret
    004138b0
    0041390d
    0041390d // align 0x10
    00413910
    00413910fn_413910:
    00413910push rbp
    00413911push rbx
    00413912sub rsp, 88
    00413916mov rbp, rsp
    00413919mov [rbp+40], rbp
    0041391dmov [rbp+112], rcx
    00413921mov rax, [rbp+112]
    00413925cmp [rax+4760], 0
    0041392cjne 0x4139c8
    00413932mov rax, [rbp+112]
    00413936cmp [rax+24], 0
    0041393bjne 0x41396a
    0041393dcall fn_409840
    00413942mov [rbp+64], rax
    00413946mov rcx, [rbp+112]
    0041394axor eax, eax
    0041394cmov rdx, [rbp+64]
    00413950lock cmpxchg [rcx+24], rdx
    00413956mov [rbp+64], rax
    0041395acmp [rbp+64], 0
    0041395fje 0x41396a
    00413961mov rcx, [rbp+64]
    00413965call fn_4098e0
    0041396a
    0041396aloc_41396a:
    0041396amov rax, [rbp+112]
    0041396emov rcx, [rax+24]
    00413972or edx, -1
    00413975call fn_409a50
    0041397anop
    0041397bmov rax, [rbp+112]
    0041397fcmp [rax+4760], 0
    00413986jne 0x4139ba
    00413988mov ebx, 197
    0041398dmov rax, [rbp+112]
    00413991lea rax, [rax+32]
    00413995mov [rbp+56], rax
    00413999
    00413999loc_413999:
    00413999mov rcx, [rbp+56]
    0041399dcall fn_413640
    004139a2add [rbp+56], 24
    004139a7sub ebx, 1
    004139aatest ebx, ebx
    004139acjne 0x413999
    004139aenop
    004139afmov rax, [rbp+112]
    004139b3mov [rax+4760], 1
    004139ba
    004139baloc_4139ba:
    004139banop
    004139bbmov rax, [rbp+112]
    004139bfmov rcx, [rax+24]
    004139c3call fn_409c20
    004139c8
    004139c8loc_4139c8:
    004139c8lea rsp, [rbp+88]
    004139ccpop rbx
    004139cdpop rbp
    004139ceret
    00413910
    004139cf
    004139cf // align 0x10
    004139d0
    004139d0fn_4139d0:
    004139d0push rbp
    004139d1sub rsp, 32
    004139d5mov rbp, rsp
    004139d8mov rax, [rdx+112]
    004139dcmov rcx, [rax+24]
    004139e0call fn_409c20
    004139e5lea rsp, [rbp+32]
    004139e9pop rbp
    004139earet
    004139d0
    004139eb
    004139eb // align 0x10
    004139f0
    004139f0fn_4139f0:
    004139f0push rbp
    004139f1sub rsp, 64
    004139f5mov rbp, rsp
    004139f8mov [rbp+40], rbp
    004139fcmov [rbp+80], rcx
    00413a00mov [rbp+88], rdx
    00413a04mov rax, [rbp+80]
    00413a08cmp [rax+4760], 0
    00413a0fje 0x413aa6
    00413a15mov rax, [rbp+88]
    00413a19mov rcx, rax
    00413a1cshr rcx, 13
    00413a20shr rax, 5
    00413a24lea rax, [rcx+rax]
    00413a28mov ecx, 197
    00413a2dcqo
    00413a2fidiv rcx
    00413a32mov [rbp+60], edx
    00413a35movsxd rax, [rbp+60]
    00413a39mov [rbp+32], rax
    00413a3dmov rax, [rbp+80]
    00413a41mov rcx, [rbp+32]
    00413a45lea rcx, [rcx+2*rcx]
    00413a49lea rcx, [rax+8*rcx+32]
    00413a4ecall fn_413660
    00413a53nop
    00413a54mov rax, [rbp+80]
    00413a58mov rcx, [rbp+32]
    00413a5clea rcx, [rcx+2*rcx]
    00413a60lea rcx, [rax+8*rcx+32]
    00413a65mov rdx, [rbp+88]
    00413a69call fn_413680
    00413a6emov [rbp+48], rax
    00413a72nop
    00413a73mov rax, [rbp+80]
    00413a77movsxd rcx, [rbp+60]
    00413a7blea rcx, [rcx+2*rcx]
    00413a7flea rcx, [rax+8*rcx+32]
    00413a84call fn_413710
    00413a89cmp [rbp+48], 0
    00413a8eje 0x413aa6
    00413a90mov rcx, [rbp+48]
    00413a94call fn_413070
    00413a99mov rcx, [rbp+80]
    00413a9dmov rdx, [rbp+48]
    00413aa1call fn_413730
    00413aa6
    00413aa6loc_413aa6:
    00413aa6lea rsp, [rbp+64]
    00413aaapop rbp
    00413aabret
    004139f0
    00413aac
    00413aac 48 8d 40 00 H.@.
    00413ab0
    00413ab0fn_413ab0:
    00413ab0push rbp
    00413ab1sub rsp, 32
    00413ab5mov rbp, rsp
    00413ab8mov rax, [rdx+80]
    00413abcmovsxd rcx, [rdx+60]
    00413ac0lea rcx, [rcx+2*rcx]
    00413ac4lea rcx, [rax+8*rcx+32]
    00413ac9call fn_413710
    00413acelea rsp, [rbp+32]
    00413ad2pop rbp
    00413ad3ret
    00413ab0
    00413ad4
    00413ad4 // align 0x10
    00413ae0
    00413ae0fn_413ae0:
    00413ae0push rbp
    00413ae1sub rsp, 80
    00413ae5mov rbp, rsp
    00413ae8mov [rbp+40], rbp
    00413aecmov [rbp+96], rcx
    00413af0mov [rbp+104], rdx
    00413af4mov [rbp+112], r8
    00413af8mov rax, [rbp+96]
    00413afccmp [rax+4760], 0
    00413b03jne 0x413b0e
    00413b05mov rcx, [rbp+96]
    00413b09call fn_413910
    00413b0e
    00413b0eloc_413b0e:
    00413b0emov rax, [rbp+112]
    00413b12mov rcx, rax
    00413b15shr rcx, 13
    00413b19shr rax, 5
    00413b1dlea rax, [rcx+rax]
    00413b21mov ecx, 197
    00413b26cqo
    00413b28idiv rcx
    00413b2bmov [rbp+76], edx
    00413b2emovsxd rax, [rbp+76]
    00413b32mov [rbp+32], rax
    00413b36mov rax, [rbp+96]
    00413b3amov rcx, [rbp+32]
    00413b3elea rcx, [rcx+2*rcx]
    00413b42lea rcx, [rax+8*rcx+32]
    00413b47call fn_413660
    00413b4cnop
    00413b4dmov rax, [rbp+96]
    00413b51mov rcx, [rbp+32]
    00413b55lea rcx, [rcx+2*rcx]
    00413b59lea rcx, [rax+8*rcx+32]
    00413b5emov rdx, [rbp+112]
    00413b62lea r8, [rbp+72]
    00413b66call fn_413550
    00413b6bmov [rbp+64], rax
    00413b6fcmp [rbp+64], 0
    00413b74jne 0x413bac
    00413b76mov rcx, [rbp+96]
    00413b7amov rdx, [rbp+112]
    00413b7ecall fn_4137f0
    00413b83mov [rbp+56], rax
    00413b87mov rax, [rbp+96]
    00413b8bmov rcx, [rbp+32]
    00413b8flea rcx, [rcx+2*rcx]
    00413b93lea rcx, [rax+8*rcx+32]
    00413b98mov edx, [rbp+72]
    00413b9bmov r8, [rbp+56]
    00413b9fcall fn_413480
    00413ba4mov rax, [rbp+56]
    00413ba8mov [rbp+64], rax
    00413bac
    00413bacloc_413bac:
    00413bacnop
    00413badmov rax, [rbp+96]
    00413bb1movsxd rcx, [rbp+76]
    00413bb5lea rcx, [rcx+2*rcx]
    00413bb9lea rcx, [rax+8*rcx+32]
    00413bbecall fn_413710
    00413bc3mov rax, [rbp+64]
    00413bc7mov [rbp+48], rax
    00413bcbmov rcx, [rbp+48]
    00413bcfmov rax, [rbp+48]
    00413bd3lea rdx, [rax+16]
    00413bd7mov r8, [rbp+104]
    00413bdbcall fn_413120
    00413be0lea rsp, [rbp+80]
    00413be4pop rbp
    00413be5ret
    00413ae0
    00413be6
    00413be6 48 90 48 8d 04 05 00 00 00 00 H.H.......
    00413bf0
    00413bf0fn_413bf0:
    00413bf0push rbp
    00413bf1sub rsp, 32
    00413bf5mov rbp, rsp
    00413bf8mov rax, [rdx+96]
    00413bfcmovsxd rcx, [rdx+76]
    00413c00lea rcx, [rcx+2*rcx]
    00413c04lea rcx, [rax+8*rcx+32]
    00413c09call fn_413710
    00413c0elea rsp, [rbp+32]
    00413c12pop rbp
    00413c13ret
    00413bf0
    00413c14
    00413c14 // align 0x10
    00413c20
    00413c20fn_413c20:
    00413c20push rbp
    00413c21sub rsp, 80
    00413c25mov rbp, rsp
    00413c28mov [rbp+40], rbp
    00413c2cmov [rbp+96], rcx
    00413c30mov [rbp+104], rdx
    00413c34mov [rbp+112], r8
    00413c38mov rax, [rbp+96]
    00413c3ccmp [rax+4760], 0
    00413c43je 0x413ce5
    00413c49mov rax, [rbp+112]
    00413c4dmov rcx, rax
    00413c50shr rcx, 13
    00413c54shr rax, 5
    00413c58lea rax, [rcx+rax]
    00413c5cmov ecx, 197
    00413c61cqo
    00413c63idiv rcx
    00413c66mov [rbp+76], edx
    00413c69movsxd rax, [rbp+76]
    00413c6dmov [rbp+32], rax
    00413c71mov rax, [rbp+96]
    00413c75mov rcx, [rbp+32]
    00413c79lea rcx, [rcx+2*rcx]
    00413c7dlea rcx, [rax+8*rcx+32]
    00413c82call fn_413660
    00413c87nop
    00413c88mov rax, [rbp+96]
    00413c8cmov rcx, [rbp+32]
    00413c90lea rcx, [rcx+2*rcx]
    00413c94lea rcx, [rax+8*rcx+32]
    00413c99mov rdx, [rbp+112]
    00413c9dlea r8, [rbp+72]
    00413ca1call fn_413550
    00413ca6mov [rbp+64], rax
    00413caanop
    00413cabmov rax, [rbp+96]
    00413cafmovsxd rcx, [rbp+76]
    00413cb3lea rcx, [rcx+2*rcx]
    00413cb7lea rcx, [rax+8*rcx+32]
    00413cbccall fn_413710
    00413cc1cmp [rbp+64], 0
    00413cc6je 0x413ce5
    00413cc8mov rax, [rbp+64]
    00413cccmov [rbp+56], rax
    00413cd0mov rcx, [rbp+56]
    00413cd4mov rax, [rbp+56]
    00413cd8lea rdx, [rax+16]
    00413cdcmov r8, [rbp+104]
    00413ce0call fn_4132c0
    00413ce5
    00413ce5loc_413ce5:
    00413ce5lea rsp, [rbp+80]
    00413ce9pop rbp
    00413cearet
    00413c20
    00413ceb
    00413ceb 48 8d 44 20 00 H.D .
    00413cf0
    00413cf0fn_413cf0:
    00413cf0push rbp
    00413cf1sub rsp, 32
    00413cf5mov rbp, rsp
    00413cf8mov rax, [rdx+96]
    00413cfcmovsxd rcx, [rdx+76]
    00413d00lea rcx, [rcx+2*rcx]
    00413d04lea rcx, [rax+8*rcx+32]
    00413d09call fn_413710
    00413d0elea rsp, [rbp+32]
    00413d12pop rbp
    00413d13ret
    00413cf0
    00413d14
    00413d14 // align 0x10
    00413d20
    00413d20fn_413d20:
    00413d20push rbp
    00413d21sub rsp, 80
    00413d25mov rbp, rsp
    00413d28mov [rbp+40], rbp
    00413d2cmov [rbp+96], rcx
    00413d30mov [rbp+104], rdx
    00413d34mov [rbp+112], r8
    00413d38mov rax, [rbp+96]
    00413d3ccmp [rax+4760], 0
    00413d43jne 0x413d4e
    00413d45mov rcx, [rbp+96]
    00413d49call fn_413910
    00413d4e
    00413d4eloc_413d4e:
    00413d4emov rax, [rbp+112]
    00413d52mov rcx, rax
    00413d55shr rcx, 13
    00413d59shr rax, 5
    00413d5dlea rax, [rcx+rax]
    00413d61mov ecx, 197
    00413d66cqo
    00413d68idiv rcx
    00413d6bmov [rbp+76], edx
    00413d6emovsxd rax, [rbp+76]
    00413d72mov [rbp+32], rax
    00413d76mov rax, [rbp+96]
    00413d7amov rcx, [rbp+32]
    00413d7elea rcx, [rcx+2*rcx]
    00413d82lea rcx, [rax+8*rcx+32]
    00413d87call fn_413660
    00413d8cnop
    00413d8dmov rax, [rbp+96]
    00413d91mov rcx, [rbp+32]
    00413d95lea rcx, [rcx+2*rcx]
    00413d99lea rcx, [rax+8*rcx+32]
    00413d9emov rdx, [rbp+112]
    00413da2lea r8, [rbp+72]
    00413da6call fn_413550
    00413dabmov [rbp+64], rax
    00413dafcmp [rbp+64], 0
    00413db4jne 0x413dec
    00413db6mov rcx, [rbp+96]
    00413dbamov rdx, [rbp+112]
    00413dbecall fn_4137f0
    00413dc3mov [rbp+56], rax
    00413dc7mov rax, [rbp+96]
    00413dcbmov rcx, [rbp+32]
    00413dcflea rcx, [rcx+2*rcx]
    00413dd3lea rcx, [rax+8*rcx+32]
    00413dd8mov edx, [rbp+72]
    00413ddbmov r8, [rbp+56]
    00413ddfcall fn_413480
    00413de4mov rax, [rbp+56]
    00413de8mov [rbp+64], rax
    00413dec
    00413decloc_413dec:
    00413decnop
    00413dedmov rax, [rbp+96]
    00413df1movsxd rcx, [rbp+76]
    00413df5lea rcx, [rcx+2*rcx]
    00413df9lea rcx, [rax+8*rcx+32]
    00413dfecall fn_413710
    00413e03mov rax, [rbp+64]
    00413e07mov [rbp+48], rax
    00413e0bmov rcx, [rbp+48]
    00413e0fmov rax, [rbp+48]
    00413e13lea rdx, [rax+264]
    00413e1amov r8, [rbp+104]
    00413e1ecall fn_413120
    00413e23lea rsp, [rbp+80]
    00413e27pop rbp
    00413e28ret
    00413d20
    00413e29
    00413e29 48 8d 80 00 00 00 00 H......
    00413e30
    00413e30fn_413e30:
    00413e30push rbp
    00413e31sub rsp, 32
    00413e35mov rbp, rsp
    00413e38mov rax, [rdx+96]
    00413e3cmovsxd rcx, [rdx+76]
    00413e40lea rcx, [rcx+2*rcx]
    00413e44lea rcx, [rax+8*rcx+32]
    00413e49call fn_413710
    00413e4elea rsp, [rbp+32]
    00413e52pop rbp
    00413e53ret
    00413e30
    00413e54
    00413e54 // align 0x10
    00413e60
    00413e60fn_413e60:
    00413e60push rbp
    00413e61sub rsp, 80
    00413e65mov rbp, rsp
    00413e68mov [rbp+40], rbp
    00413e6cmov [rbp+96], rcx
    00413e70mov [rbp+104], rdx
    00413e74mov [rbp+112], r8
    00413e78mov rax, [rbp+96]
    00413e7ccmp [rax+4760], 0
    00413e83je 0x413f28
    00413e89mov rax, [rbp+112]
    00413e8dmov rcx, rax
    00413e90shr rcx, 13
    00413e94shr rax, 5
    00413e98lea rax, [rcx+rax]
    00413e9cmov ecx, 197
    00413ea1cqo
    00413ea3idiv rcx
    00413ea6mov [rbp+76], edx
    00413ea9movsxd rax, [rbp+76]
    00413eadmov [rbp+32], rax
    00413eb1mov rax, [rbp+96]
    00413eb5mov rcx, [rbp+32]
    00413eb9lea rcx, [rcx+2*rcx]
    00413ebdlea rcx, [rax+8*rcx+32]
    00413ec2call fn_413660
    00413ec7nop
    00413ec8mov rax, [rbp+96]
    00413eccmov rcx, [rbp+32]
    00413ed0lea rcx, [rcx+2*rcx]
    00413ed4lea rcx, [rax+8*rcx+32]
    00413ed9mov rdx, [rbp+112]
    00413eddlea r8, [rbp+72]
    00413ee1call fn_413550
    00413ee6mov [rbp+64], rax
    00413eeanop
    00413eebmov rax, [rbp+96]
    00413eefmovsxd rcx, [rbp+76]
    00413ef3lea rcx, [rcx+2*rcx]
    00413ef7lea rcx, [rax+8*rcx+32]
    00413efccall fn_413710
    00413f01cmp [rbp+64], 0
    00413f06je 0x413f28
    00413f08mov rax, [rbp+64]
    00413f0cmov [rbp+56], rax
    00413f10mov rcx, [rbp+56]
    00413f14mov rax, [rbp+56]
    00413f18lea rdx, [rax+264]
    00413f1fmov r8, [rbp+104]
    00413f23call fn_4132c0
    00413f28
    00413f28loc_413f28:
    00413f28lea rsp, [rbp+80]
    00413f2cpop rbp
    00413f2dret
    00413e60
    00413f2e
    00413f2e 48 90 H.
    00413f30
    00413f30fn_413f30:
    00413f30push rbp
    00413f31sub rsp, 32
    00413f35mov rbp, rsp
    00413f38mov rax, [rdx+96]
    00413f3cmovsxd rcx, [rdx+76]
    00413f40lea rcx, [rcx+2*rcx]
    00413f44lea rcx, [rax+8*rcx+32]
    00413f49call fn_413710
    00413f4elea rsp, [rbp+32]
    00413f52pop rbp
    00413f53ret
    00413f30
    00413f54
    00413f54 // align 0x10
    00413f60
    00413f60fn_413f60:
    00413f60push rbp
    00413f61sub rsp, 80
    00413f65mov rbp, rsp
    00413f68mov [rbp+40], rbp
    00413f6cmov [rbp+96], rcx
    00413f70mov [rbp+104], rdx
    00413f74mov [rbp+75], 0
    00413f78mov rax, [rbp+96]
    00413f7ccmp [rax+4760], 0
    00413f83je 0x41400c
    00413f89mov rax, [rbp+104]
    00413f8dmov rcx, rax
    00413f90shr rcx, 13
    00413f94shr rax, 5
    00413f98lea rax, [rcx+rax]
    00413f9cmov ecx, 197
    00413fa1cqo
    00413fa3idiv rcx
    00413fa6mov [rbp+76], edx
    00413fa9movsxd rax, [rbp+76]
    00413fadmov [rbp+32], rax
    00413fb1mov rax, [rbp+96]
    00413fb5mov rcx, [rbp+32]
    00413fb9lea rcx, [rcx+2*rcx]
    00413fbdlea rcx, [rax+8*rcx+32]
    00413fc2call fn_413660
    00413fc7nop
    00413fc8mov rax, [rbp+96]
    00413fccmov rcx, [rbp+32]
    00413fd0lea rcx, [rcx+2*rcx]
    00413fd4lea rcx, [rax+8*rcx+32]
    00413fd9mov rdx, [rbp+104]
    00413fddlea r8, [rbp+68]
    00413fe1call fn_413550
    00413fe6mov [rbp+56], rax
    00413feanop
    00413febmov rax, [rbp+96]
    00413fefmovsxd rcx, [rbp+76]
    00413ff3lea rcx, [rcx+2*rcx]
    00413ff7lea rcx, [rax+8*rcx+32]
    00413ffccall fn_413710
    00414001cmp [rbp+56], 0
    00414006setne al
    00414009mov [rbp+75], al
    0041400c
    0041400cloc_41400c:
    0041400cmovzx rax, [rbp+75]
    00414011lea rsp, [rbp+80]
    00414015pop rbp
    00414016ret
    00413f60
    00414017
    00414017 90 48 8d 04 05 00 00 00 00 .H.......
    00414020
    00414020fn_414020:
    00414020push rbp
    00414021sub rsp, 32
    00414025mov rbp, rsp
    00414028mov rax, [rdx+96]
    0041402cmovsxd rcx, [rdx+76]
    00414030lea rcx, [rcx+2*rcx]
    00414034lea rcx, [rax+8*rcx+32]
    00414039call fn_413710
    0041403elea rsp, [rbp+32]
    00414042pop rbp
    00414043ret
    00414020
    00414044
    00414044 // align 0x10
    00414050
    00414050fn_414050:
    00414050push rbp
    00414051sub rsp, 16
    00414055mov rbp, rsp
    00414058mov rax, [rcx]
    0041405bmovsxd rax, [rax-128]
    0041405flea rcx, [rcx+rax-8]
    00414064mov rax, [rcx]
    00414067mov [rbp+8], rax
    0041406bjmp 0x414085
    0041406d
    0041406dloc_41406d:
    0041406dmov rdx, [rbp+8]
    00414071or rdx, 1
    00414075mov rax, [rbp+8]
    00414079lock cmpxchg [rcx], rdx
    0041407emov rax, [rcx]
    00414081mov [rbp+8], rax
    00414085
    00414085loc_414085:
    00414085mov rax, [rbp+8]
    00414089test rax, 1
    00414090je 0x41406d
    00414092lea rsp, [rbp+16]
    00414096pop rbp
    00414097ret
    00414050
    00414098
    00414098 // align 0x10
    004140a0
    004140a0fn_4140a0:
    004140a0push rsi
    004140a1push rbx
    004140a2sub rsp, 40
    004140a6mov rbx, rcx
    004140a9test rdx, rdx
    004140acje 0x4140e0
    004140aemov rax, [rdx]
    004140b1mov rsi, rdx
    004140b4movsxd rax, [rax-128]
    004140b8mov rax, [rsi+rax-8]
    004140bdtest rax, 1
    004140c4jne 0x4140ce
    004140c6mov rcx, rdx
    004140c9call fn_414050
    004140ce
    004140celoc_4140ce:
    004140celea rcx, [rip+0x55ef3]
    004140d5mov rdx, rbx
    004140d8mov r8, rsi
    004140dbcall fn_413ae0
    004140e0
    004140e0loc_4140e0:
    004140e0add rsp, 40
    004140e4pop rbx
    004140e5pop rsi
    004140e6ret
    004140a0
    004140e7
    004140e7 // align 0x10
    004140f0
    004140f0fn_4140f0:
    004140f0sub rsp, 40
    004140f4test rdx, rdx
    004140f7je 0x414114
    004140f9lea rax, [rip+0x55ec8]
    00414100mov r8, rcx
    00414103mov r9, rdx
    00414106mov rcx, rax
    00414109mov rdx, r8
    0041410cmov r8, r9
    0041410fcall fn_413c20
    00414114
    00414114loc_414114:
    00414114add rsp, 40
    00414118ret
    004140f0
    00414119
    00414119 // align 0x10
    00414120
    00414120fn_414120:
    00414120sub rsp, 40
    00414124mov rax, [rcx]
    00414127movsxd rax, [rax-128]
    0041412bmov rax, [rcx+rax-8]
    00414130test rax, 1
    00414137je 0x41414b
    00414139lea rax, [rip+0x55e88]
    00414140mov rdx, rcx
    00414143mov rcx, rax
    00414146call fn_4139f0
    0041414b
    0041414bloc_41414b:
    0041414badd rsp, 40
    0041414fret
    00414120
    00414150
    00414150fn_414150:
    00414150push rsi
    00414151push rbx
    00414152sub rsp, 40
    00414156mov rbx, rcx
    00414159mov rsi, rbx
    0041415ccmp [rbx], 0
    00414160je 0x414183
    00414162mov rcx, [rbx]
    00414165mov rdx, [rip-0x12b34]
    0041416ccall fn_409130
    00414171mov [rbx], 0
    00414178mov rcx, rsi
    0041417bmov rdx, rax
    0041417ecall fn_4140f0
    00414183
    00414183loc_414183:
    00414183mov rax, rsi
    00414186add rsp, 40
    0041418apop rbx
    0041418bpop rsi
    0041418cret
    00414150
    0041418d
    0041418d // align 0x10
    00414190
    00414190fn_414190:
    00414190push rdi
    00414191push rsi
    00414192push rbx
    00414193sub rsp, 32
    00414197mov rbx, rcx
    0041419amov rsi, rdx
    0041419dmov rcx, rbx
    004141a0call fn_414150
    004141a5mov rdi, rax
    004141a8mov rcx, rsi
    004141abmov rdx, [rip-0x12b7a]
    004141b2call fn_409130
    004141b7mov rcx, rdi
    004141bamov rdx, rax
    004141bdcall fn_4140a0
    004141c2mov [rbx], rsi
    004141c5add rsp, 32
    004141c9pop rbx
    004141capop rsi
    004141cbpop rdi
    004141ccret
    00414190
    004141cd
    004141cd // align 0x10
    004141d0
    004141d0fn_4141d0:
    004141d0push rdi
    004141d1push rsi
    004141d2push rbx
    004141d3sub rsp, 64
    004141d7mov rbx, rcx
    004141damov esi, edx
    004141dcmov edi, r9l
    004141dfxor eax, eax
    004141e1test r8, r8
    004141e4je 0x4142c7
    004141eatest rbx, rbx
    004141edje 0x414295
    004141f3mov ecx, 65001
    004141f8xor edx, edx
    004141famov r9l, edi
    004141fdmov [rsp+32], rbx
    00414202mov [rsp+40], esi
    00414206mov [rsp+48], 0
    0041420fmov [rsp+56], 0
    00414218call fn_4146a0
    0041421dtest eax, eax
    0041421fjbe 0x4142c7
    00414225cmp eax, esi
    00414227ja 0x4142c7
    0041422dcmp edi, -1
    00414230jne 0x414243
    00414232mov ecx, eax
    00414234sub ecx, 1
    00414237mov ecx, ecx
    00414239cmp [rbx+rcx], 0
    0041423dje 0x4142c7
    00414243
    00414243loc_414243:
    00414243cmp eax, esi
    00414245jne 0x414285
    00414247jmp 0x41424c
    00414249
    00414249loc_414249:
    00414249sub eax, 1
    0041424c
    0041424cloc_41424c:
    0041424ccmp eax, 1
    0041424fjbe 0x414288
    00414251mov ecx, eax
    00414253sub ecx, 1
    00414256mov ecx, ecx
    00414258cmp [rbx+rcx], 127
    0041425cjbe 0x414288
    0041425emov ecx, eax
    00414260sub ecx, 1
    00414263mov ecx, ecx
    00414265movzx rcx, [rbx+rcx]
    0041426atest cl, 128
    0041426dje 0x414288
    0041426fmov ecx, eax
    00414271sub ecx, 1
    00414274mov ecx, ecx
    00414276movzx rcx, [rbx+rcx]
    0041427band cl, 192
    0041427ecmp cl, -64
    00414281jne 0x414249
    00414283jmp 0x414288
    00414285
    00414285loc_414285:
    00414285add eax, 1
    00414288
    00414288loc_414288:
    00414288mov ecx, eax
    0041428asub ecx, 1
    0041428dmov ecx, ecx
    0041428fmov [rbx+rcx], 0
    00414293jmp 0x4142c7
    00414295
    00414295loc_414295:
    00414295mov ecx, 65001
    0041429axor edx, edx
    0041429cmov r9l, edi
    0041429fmov [rsp+32], 0
    004142a8mov [rsp+40], 0
    004142b0mov [rsp+48], 0
    004142b9mov [rsp+56], 0
    004142c2call fn_4146a0
    004142c7
    004142c7loc_4142c7:
    004142c7add rsp, 64
    004142cbpop rbx
    004142ccpop rsi
    004142cdpop rdi
    004142ceret
    004141d0
    004142cf
    004142cf // align 0x10
    004142d0
    004142d0fn_4142d0:
    004142d0push rdi
    004142d1push rsi
    004142d2push rbx
    004142d3sub rsp, 48
    004142d7mov rbx, rcx
    004142damov esi, edx
    004142dcmov edi, r9l
    004142dfxor eax, eax
    004142e1test r8, r8
    004142e4je 0x414384
    004142eatest rbx, rbx
    004142edje 0x414364
    004142eftest esi, esi
    004142f1jbe 0x414364
    004142f3mov ecx, 65001
    004142f8xor edx, edx
    004142famov r9l, edi
    004142fdmov [rsp+32], rbx
    00414302mov [rsp+40], esi
    00414306call fn_4146e0
    0041430btest eax, eax
    0041430djbe 0x414384
    0041430fcmp eax, esi
    00414311ja 0x414384
    00414313cmp edi, -1
    00414316jne 0x414326
    00414318mov ecx, eax
    0041431asub ecx, 1
    0041431dmov ecx, ecx
    0041431fcmp [rbx+2*rcx], 0
    00414324je 0x414384
    00414326
    00414326loc_414326:
    00414326cmp eax, esi
    00414328jne 0x414352
    0041432acmp eax, 1
    0041432djbe 0x414355
    0041432fmov ecx, eax
    00414331sub ecx, 1
    00414334mov ecx, ecx
    00414336cmp [rbx+2*rcx], -9216
    0041433cjb 0x414355
    0041433emov ecx, eax
    00414340sub ecx, 1
    00414343mov ecx, ecx
    00414345cmp [rbx+2*rcx], -8193
    0041434bja 0x414355
    0041434dsub eax, 1
    00414350jmp 0x414355
    00414352
    00414352loc_414352:
    00414352add eax, 1
    00414355
    00414355loc_414355:
    00414355mov ecx, eax
    00414357sub ecx, 1
    0041435amov ecx, ecx
    0041435cmov [rbx+2*rcx], 0
    00414362jmp 0x414384
    00414364
    00414364loc_414364:
    00414364mov ecx, 65001
    00414369xor edx, edx
    0041436bmov r9l, edi
    0041436emov [rsp+32], 0
    00414377mov [rsp+40], 0
    0041437fcall fn_4146e0
    00414384
    00414384loc_414384:
    00414384add rsp, 48
    00414388pop rbx
    00414389pop rsi
    0041438apop rdi
    0041438bret
    004142d0
    0041438c
    0041438c // align 0x10
    00414390
    00414390fn_414390:
    00414390push r14
    00414392push r13
    00414394push rdi
    00414395push rsi
    00414396push rbx
    00414397sub rsp, 32
    0041439bmov rbx, rcx
    0041439emov rsi, rdx
    004143a1mov rcx, rsi
    004143a4xor edx, edx
    004143a6call fn_40d640
    004143abtest eax, eax
    004143adjne 0x4143bc
    004143afmov rcx, rbx
    004143b2call fn_40bd40
    004143b7jmp 0x41443c
    004143bc
    004143bcloc_4143bc:
    004143bcxor edi, edi
    004143bemov rax, rsi
    004143c1test rax, rax
    004143c4je 0x4143cc
    004143c6mov edi, [rax-4]
    004143c9shr edi, 1
    004143cc
    004143ccloc_4143cc:
    004143ccmov rcx, rbx
    004143cfmov edx, edi
    004143d1lea rdx, [rdx+2*rdx]
    004143d5xor r8, r8
    004143d8call fn_40cf30
    004143ddxor r13, r13
    004143e0mov rax, [rbx]
    004143e3test rax, rax
    004143e6je 0x4143ec
    004143e8mov r13l, [rax-4]
    004143ec
    004143ecloc_4143ec:
    004143ecmov rcx, [rbx]
    004143efcall fn_40ce10
    004143f4mov r14, rax
    004143f7mov rcx, rsi
    004143facall fn_40d180
    004143ffmov rcx, r14
    00414402mov edx, r13l
    00414405add edx, 1
    00414408mov r8, rax
    0041440bmov r9l, edi
    0041440ecall fn_4141d0
    00414413mov edi, eax
    00414415test edi, edi
    00414417jle 0x414434
    00414419mov rcx, rbx
    0041441cmov edx, edi
    0041441esub edx, 1
    00414421xor r8, r8
    00414424call fn_40cf30
    00414429mov rax, [rbx]
    0041442cmov [rax-12], -535
    00414432jmp 0x41443c
    00414434
    00414434loc_414434:
    00414434mov rcx, rbx
    00414437call fn_40bd40
    0041443c
    0041443cloc_41443c:
    0041443cmov rax, rbx
    0041443fadd rsp, 32
    00414443pop rbx
    00414444pop rsi
    00414445pop rdi
    00414446pop r13
    00414448pop r14
    0041444aret
    00414390
    0041444b
    0041444b // align 0x10
    00414450
    00414450fn_414450:
    00414450push rsi
    00414451push rbx
    00414452sub rsp, 40
    00414456mov rbx, rcx
    00414459xor esi, esi
    0041445bmov rax, rdx
    0041445etest rax, rax
    00414461je 0x414466
    00414463mov esi, [rax-4]
    00414466
    00414466loc_414466:
    00414466mov rcx, rdx
    00414469call fn_40d710
    0041446elea rcx, [rbx+1]
    00414472mov edx, 255
    00414477mov r8, rax
    0041447amov r9l, esi
    0041447dcall fn_4141d0
    00414482sub eax, 1
    00414485test eax, eax
    00414487jge 0x41448b
    00414489xor eax, eax
    0041448b
    0041448bloc_41448b:
    0041448bmov [rbx], al
    0041448dmov rax, rbx
    00414490add rsp, 40
    00414494pop rbx
    00414495pop rsi
    00414496ret
    00414450
    00414497
    00414497 // align 0x10
    004144a0
    004144a0fn_4144a0:
    004144a0push r13
    004144a2push rdi
    004144a3push rsi
    004144a4push rbx
    004144a5sub rsp, 40
    004144a9mov rbx, rcx
    004144acmov rsi, rdx
    004144aftest rsi, rsi
    004144b2jne 0x4144be
    004144b4mov rcx, rbx
    004144b7call fn_40bd90
    004144bcjmp 0x414518
    004144be
    004144beloc_4144be:
    004144bexor edi, edi
    004144c0mov rax, rsi
    004144c3test rax, rax
    004144c6je 0x4144cb
    004144c8mov edi, [rax-4]
    004144cb
    004144cbloc_4144cb:
    004144cbmov rcx, rbx
    004144cemov edx, edi
    004144d0call fn_40d6b0
    004144d5mov rcx, [rbx]
    004144d8call fn_40d180
    004144ddmov r13, rax
    004144e0mov rcx, rsi
    004144e3call fn_40ce10
    004144e8mov rcx, r13
    004144ebmov edx, edi
    004144edadd edx, 1
    004144f0mov r8, rax
    004144f3mov r9l, edi
    004144f6call fn_4142d0
    004144fbmov edi, eax
    004144fdtest edi, edi
    004144ffjle 0x414510
    00414501mov rcx, rbx
    00414504mov edx, edi
    00414506sub edx, 1
    00414509call fn_40d6b0
    0041450ejmp 0x414518
    00414510
    00414510loc_414510:
    00414510mov rcx, rbx
    00414513call fn_40bd90
    00414518
    00414518loc_414518:
    00414518mov rax, rbx
    0041451badd rsp, 40
    0041451fpop rbx
    00414520pop rsi
    00414521pop rdi
    00414522pop r13
    00414524ret
    004144a0
    00414525
    00414525 // align 0x10
    00414530
    00414530fn_414530:
    00414530push rbp
    00414531push rdi
    00414532push rsi
    00414533push rbx
    00414534sub rsp, 296
    0041453bmov rbp, rsp
    0041453emov rbx, rcx
    00414541mov rsi, rdx
    00414544movzx rax, [rsi]
    00414548lea rcx, [rax+1]
    0041454clea rdi, [rbp+32]
    00414550rep movsb [rdi], [rsi]
    00414552cmp [rbp+32], 0
    00414556jne 0x414562
    00414558mov rcx, rbx
    0041455bcall fn_40bcf0
    00414560jmp 0x4145aa
    00414562
    00414562loc_414562:
    00414562movzx rsi, [rbp+32]
    00414567mov rcx, rbx
    0041456amov edx, esi
    0041456ccall fn_40d8d0
    00414571mov rcx, [rbx]
    00414574call fn_40d710
    00414579mov rcx, rax
    0041457cmov edx, esi
    0041457eadd edx, 1
    00414581lea r8, [rbp+33]
    00414585mov r9l, esi
    00414588call fn_4142d0
    0041458dmov esi, eax
    0041458ftest esi, esi
    00414591jle 0x4145a2
    00414593mov rcx, rbx
    00414596mov edx, esi
    00414598sub edx, 1
    0041459bcall fn_40d8d0
    004145a0jmp 0x4145aa
    004145a2
    004145a2loc_4145a2:
    004145a2mov rcx, rbx
    004145a5call fn_40bcf0
    004145aa
    004145aaloc_4145aa:
    004145aamov rax, rbx
    004145adlea rsp, [rbp+296]
    004145b4pop rbx
    004145b5pop rsi
    004145b6pop rdi
    004145b7pop rbp
    004145b8ret
    00414530
    004145b9
    004145b9 // align 0x10
    004145c0
    004145c0fn_4145c0:
    004145c0push rbp
    004145c1push rdi
    004145c2push rsi
    004145c3push rbx
    004145c4sub rsp, 296
    004145cbmov rbp, rsp
    004145cemov rbx, rcx
    004145d1mov rsi, rdx
    004145d4movzx rax, [rsi]
    004145d8lea rcx, [rax+1]
    004145dclea rdi, [rbp+32]
    004145e0rep movsb [rdi], [rsi]
    004145e2mov rcx, rbx
    004145e5lea rdx, [rbp+32]
    004145e9call fn_414530
    004145eemov rax, rbx
    004145f1lea rsp, [rbp+296]
    004145f8pop rbx
    004145f9pop rsi
    004145fapop rdi
    004145fbpop rbp
    004145fcret
    004145c0
    004145fd
    004145fd // align 0x10
    00414600
    00414600fn_414600:
    00414600push rbp
    00414601push rsi
    00414602push rbx
    00414603mov [rsp-32], 0
    00414608mov [rsp-4128], 0
    00414610mov [rsp-8224], 0
    00414618sub rsp, 8224
    0041461fmov rbp, rsp
    00414622mov rbx, rcx
    00414625mov rsi, rdx
    00414628test rsi, rsi
    0041462bje 0x41468c
    0041462dcmp [rip+0x44a2b], 0
    00414635je 0x414645
    00414637mov rcx, rbx
    0041463amov rdx, rsi
    0041463dcall [rip+0x44a1d]
    00414643jmp 0x41468c
    00414645
    00414645loc_414645:
    00414645cmp [rsi+8], 0x10000
    0041464djae 0x414680
    0041464fmov rax, [rsi]
    00414652mov rcx, [rax]
    00414655call fn_410990
    0041465amov rcx, rax
    0041465dmov edx, [rsi+8]
    00414660lea r8, [rbp+32]
    00414664mov r9l, 4096
    0041466acall LoadStringW
    0041466fmov rcx, rbx
    00414672lea rdx, [rbp+32]
    00414676mov r8l, eax
    00414679call fn_40bfd0
    0041467ejmp 0x41468c
    00414680
    00414680loc_414680:
    00414680mov rcx, rbx
    00414683mov rdx, [rsi+8]
    00414687call fn_40d780
    0041468c
    0041468cloc_41468c:
    0041468cmov rax, rbx
    0041468flea rsp, [rbp+8224]
    00414696pop rbx
    00414697pop rsi
    00414698pop rbp
    00414699ret
    00414600
    0041469a
    0041469a // align 0x10
    004146a0
    004146a0fn_4146a0:
    004146a0sub rsp, 72
    004146a4mov rax, [rsp+112]
    004146a9mov [rsp+32], rax
    004146aemov eax, [rsp+120]
    004146b2mov [rsp+40], eax
    004146b6mov rax, [rsp+128]
    004146bemov [rsp+48], rax
    004146c3mov rax, [rsp+136]
    004146cbmov [rsp+56], rax
    004146d0call WideCharToMultiByte
    004146d5add rsp, 72
    004146d9ret
    004146a0
    004146da
    004146da // align 0x10
    004146e0
    004146e0fn_4146e0:
    004146e0sub rsp, 56
    004146e4mov rax, [rsp+96]
    004146e9mov [rsp+32], rax
    004146eemov eax, [rsp+104]
    004146f2mov [rsp+40], eax
    004146f6call MultiByteToWideChar
    004146fbadd rsp, 56
    004146ffret
    004146e0
    00414700
    00414700fn_414700:
    00414700sub rsp, 88
    00414704lea rcx, [rsp+32]
    00414709call GetSystemInfo
    0041470emov eax, [rsp+64]
    00414712add rsp, 88
    00414716ret
    00414700
    00414717
    00414717 // align 0x10
    00414720
    00414720fn_414720:
    00414720sub rsp, 40
    00414724call GetVersion
    00414729mov ecx, eax
    0041472band ecx, 255
    00414731and eax, 65280
    00414737shr eax, 8
    0041473acmp ecx, 5
    0041473djne 0x414744
    0041473fcmp eax, 1
    00414742jae 0x414749
    00414744
    00414744loc_414744:
    00414744cmp ecx, 5
    00414747jbe 0x414755
    00414749
    00414749loc_414749:
    00414749mov [rip+0x512cd], 127
    00414753jmp 0x41475f
    00414755
    00414755loc_414755:
    00414755mov [rip+0x512c1], 1033
    0041475f
    0041475floc_41475f:
    0041475fadd rsp, 40
    00414763ret
    00414720
    00414764
    00414764 // align 0x10
    00414770
    00414770System.finalization:
    00414770push rbp
    00414771sub rsp, 32
    00414775mov rbp, rsp
    00414778nop
    00414779add [rip+0x512a8], 1
    00414780cmp [rip+0x512a1], 0
    00414787jne 0x4147ed
    00414789lea rcx, [rip+0x50918]
    00414790call fn_406940
    00414795lea rcx, [rip+0x50c04]
    0041479ccall fn_406940
    004147a1lea rcx, [rip+0x50ef0]
    004147a8call fn_406940
    004147adcall fn_410cd0
    004147b2cmp [rip+0x474e6], 0
    004147baje 0x4147c8
    004147bcmov rcx, [rip+0x474dd]
    004147c3call fn_404120
    004147c8
    004147c8loc_4147c8:
    004147c8lea rcx, [rip+0x557f9]
    004147cfcall fn_4138b0
    004147d4call fn_405660
    004147d9lea rcx, [rip+0x557e8]
    004147e0mov rdx, [rip-7543]
    004147e7call fn_40e630
    004147ecnop
    004147ed
    004147edloc_4147ed:
    004147edlea rsp, [rbp+32]
    004147f1pop rbp
    004147f2ret
    00414770
    004147f3
    004147f3 48 8d 44 20 00 48 8d 04 05 00 00 00 00 H.D .H.......
    00414800
    00414800fn_414800:
    00414800push rbp
    00414801mov rbp, rsp
    00414804mov rsp, rbp
    00414807pop rbp
    00414808ret
    00414800
    00414809
    00414809 // align 0x10
    00414810
    00414810System.initialization:
    00414810push rbp
    00414811sub rsp, 32
    00414815mov rbp, rsp
    00414818nop
    00414819sub [rip+0x51208], 1
    00414820cmp [rip+0x51201], -1
    00414827jne 0x4148eb
    0041482dcall fn_408560
    00414832call fn_4053d0
    00414837mov ecx, 1024
    0041483ccall SetThreadLocale
    00414841call fn_410bc0
    00414846mov [rip+0x447c7], 2
    0041484dlea rax, [rip-0x11624]
    00414854mov [rip+0x507d5], rax
    0041485blea rax, [rip-0x11622]
    00414862mov [rip+0x507cf], rax
    00414869mov [rip+0x5082a], 2
    00414870call fn_414700
    00414875mov [rip+0x50825], eax
    0041487blea rax, [rip-19442]
    00414882mov [rip+0x5077f], rax
    00414889call fn_4085b0
    0041488ecall fn_4085e0
    00414893mov [rip+0x50814], -10320
    0041489cmov [rip+0x50b03], -10320
    004148a5mov [rip+0x50df2], -10320
    004148aecall GetCommandLineW
    004148b3mov [rip+0x507ce], rax
    004148bacall fn_4035d0
    004148bfmov [rip+0x507bb], eax
    004148c5call GetACP
    004148camov [rip+0x51148], eax
    004148d0mov [rip+0x51142], 1200
    004148dacall GetCurrentThreadId
    004148dfmov [rip+0x50793], eax
    004148e5call fn_414720
    004148eanop
    004148eb
    004148ebloc_4148eb:
    004148eblea rsp, [rbp+32]
    004148efpop rbp
    004148f0ret
    00414810
    004148f1
    004148f1 48 8d 80 00 00 00 00 48 8d 04 05 00 00 00 00 H......H.......
    00414900
    00414900fn_414900:
    00414900push rbp
    00414901mov rbp, rsp
    00414904mov rsp, rbp
    00414907pop rbp
    00414908ret
    00414900
    00414909
    00414909 // align 0x10
    00414910
    00414910FreeLibrary:
    00414910jmp [rip+0x5cd3a]
    00414910
    00414916
    00414916 // align 0x10
    00414920
    00414920GetModuleHandleW:
    00414920jmp [rip+0x5cd22]
    00414920
    00414926
    00414926 // align 0x10
    00414930
    00414930LocalAlloc:
    00414930jmp [rip+0x5cfaa]
    00414930
    00414936
    00414936 // align 0x10
    00414940
    00414940LocalFree:
    00414940jmp [rip+0x5cc9a]
    00414940
    00414946
    00414946 // align 0x10
    00414950
    00414950TlsGetValue:
    00414950jmp [rip+0x5cf4a]
    00414950
    00414956
    00414956 // align 0x10
    00414960
    00414960TlsSetValue:
    00414960jmp [rip+0x5cf62]
    00414960
    00414966
    00414966 // align 0x10
    00414970
    00414970GetLastError:
    00414970jmp [rip+0x5ccea]
    00414970
    00414976
    00414976 // align 0x10
    00414980
    00414980LoadLibraryA:
    00414980jmp [rip+0x5cd12]
    00414980
    00414986
    00414986 // align 0x10
    00414990
    00414990RaiseException:
    00414990jmp [rip+0x5cd2a]
    00414990
    00414996
    00414996 // align 0x10
    004149a0
    004149a0GetProcAddress:
    004149a0jmp [rip+0x5ce02]
    004149a0
    004149a6
    004149a6 // align 0x10
    004149b0
    004149b0fn_4149b0:
    004149b0sub rsp, 40
    004149b4call [rip+0x47a1e]
    004149baadd rsp, 40
    004149beret
    004149b0
    004149bf
    004149bf // align 0x10
    004149c0
    004149c0fn_4149c0:
    004149c0sub rsp, 40
    004149c4mov eax, 64
    004149c9mov edx, ecx
    004149cbmov ecx, eax
    004149cdcall LocalAlloc
    004149d2add rsp, 40
    004149d6ret
    004149c0
    004149d7
    004149d7 // align 0x10
    004149e0
    004149e0fn_4149e0:
    004149e0lea rax, [0x230]
    004149e8ret
    004149e0
    004149e9
    004149e9 // align 0x10
    004149f0
    004149f0fn_4149f0:
    004149f0push rbx
    004149f1sub rsp, 32
    004149f5call fn_4149e0
    004149famov ebx, eax
    004149fctest ebx, ebx
    004149feje 0x414a39
    00414a00cmp [rip+0x479c1], -1
    00414a07jne 0x414a13
    00414a09mov ecx, 226
    00414a0ecall fn_40ba30
    00414a13
    00414a13loc_414a13:
    00414a13mov ecx, ebx
    00414a15call fn_4149c0
    00414a1atest rax, rax
    00414a1djne 0x414a2b
    00414a1fmov ecx, 226
    00414a24call fn_40ba30
    00414a29jmp 0x414a39
    00414a2b
    00414a2bloc_414a2b:
    00414a2bmov ecx, [rip+0x47997]
    00414a31mov rdx, rax
    00414a34call TlsSetValue
    00414a39
    00414a39loc_414a39:
    00414a39add rsp, 32
    00414a3dpop rbx
    00414a3eret
    004149f0
    00414a3f
    00414a3f // align 0x10
    00414a40
    00414a40fn_414a40:
    00414a40sub rsp, 40
    00414a44cmp [rip+0x5681d], 0
    00414a4bje 0x414a7b
    00414a4dmov ecx, [rip+0x47975]
    00414a53call TlsGetValue
    00414a58test rax, rax
    00414a5bjne 0x414a8e
    00414a5dcall fn_4149f0
    00414a62mov ecx, [rip+0x47960]
    00414a68call TlsGetValue
    00414a6dtest rax, rax
    00414a70jne 0x414a8e
    00414a72mov rax, [rip+0x56827]
    00414a79jmp 0x414a8e
    00414a7b
    00414a7bloc_414a7b:
    00414a7bmov rax, [0x58]
    00414a84mov ecx, [rip+0x4793e]
    00414a8amov rax, [rax+8*rcx]
    00414a8e
    00414a8eloc_414a8e:
    00414a8eadd rsp, 40
    00414a92ret
    00414a40
    00414a93
    00414a93 // align 0x10
    00414aa0
    00414aa0fn_414aa0:
    00414aa0sub rsp, 40
    00414aa4lea rcx, [rip+0x47945]
    00414aabcall fn_4123d0
    00414ab0add rsp, 40
    00414ab4ret
    00414aa0
    00414ab5
    00414ab5 // align 0x10
    00414ac0
    00414ac0fn_414ac0:
    00414ac0ret
    00414ac0
    00414ac1
    00414ac1 // align 0x10
    00414ad0
    00414ad0fn_414ad0:
    00414ad0sub rsp, 40
    00414ad4call fn_414ac0
    00414ad9call fn_414ac0
    00414adecall fn_414ac0
    00414ae3call fn_414ac0
    00414ae8call fn_414ac0
    00414aedcall fn_414ac0
    00414af2call fn_414ac0
    00414af7call fn_414ac0
    00414afccall fn_414ac0
    00414b01call fn_414ac0
    00414b06call fn_414ac0
    00414b0bcall fn_414ac0
    00414b10call fn_414ac0
    00414b15call fn_414ac0
    00414b1acall fn_414ac0
    00414b1fcall fn_414ac0
    00414b24call fn_414ac0
    00414b29call fn_414ac0
    00414b2ecall fn_414ac0
    00414b33call fn_414ac0
    00414b38call fn_414ac0
    00414b3dcall fn_414ac0
    00414b42call fn_414ac0
    00414b47call fn_414ac0
    00414b4ccall fn_414ac0
    00414b51call fn_414ac0
    00414b56call fn_414ac0
    00414b5bcall fn_414ac0
    00414b60call fn_414ac0
    00414b65call fn_414ac0
    00414b6acall fn_414ac0
    00414b6fcall fn_414ac0
    00414b74call fn_414ac0
    00414b79call fn_414ac0
    00414b7ecall fn_414ac0
    00414b83call fn_414ac0
    00414b88call fn_414ac0
    00414b8dcall fn_414ac0
    00414b92call fn_414ac0
    00414b97call fn_414ac0
    00414b9ccall fn_414ac0
    00414ba1call fn_414ac0
    00414ba6call fn_414ac0
    00414babcall fn_414ac0
    00414bb0call fn_414ac0
    00414bb5call fn_414ac0
    00414bbacall fn_414ac0
    00414bbfcall fn_414ac0
    00414bc4call fn_414ac0
    00414bc9call fn_414ac0
    00414bcecall fn_414ac0
    00414bd3call fn_414ac0
    00414bd8call fn_414ac0
    00414bddcall fn_414ac0
    00414be2call fn_414ac0
    00414be7call fn_414ac0
    00414beccall fn_414ac0
    00414bf1call fn_414ac0
    00414bf6call fn_414ac0
    00414bfbcall fn_414ac0
    00414c00call fn_414ac0
    00414c05call fn_414ac0
    00414c0acall fn_414ac0
    00414c0fcall fn_414ac0
    00414c14call fn_414ac0
    00414c19call fn_414ac0
    00414c1ecall fn_414ac0
    00414c23call fn_414ac0
    00414c28call fn_414ac0
    00414c2dcall fn_414ac0
    00414c32call fn_414ac0
    00414c37call fn_414ac0
    00414c3ccall fn_414ac0
    00414c41call fn_414ac0
    00414c46call fn_414ac0
    00414c4bcall fn_414ac0
    00414c50call fn_414ac0
    00414c55call fn_414ac0
    00414c5acall fn_414ac0
    00414c5fcall fn_414ac0
    00414c64call fn_414ac0
    00414c69call fn_414ac0
    00414c6ecall fn_414ac0
    00414c73call fn_414ac0
    00414c78call fn_414ac0
    00414c7dcall fn_414ac0
    00414c82call fn_414ac0
    00414c87call fn_414ac0
    00414c8ccall fn_414ac0
    00414c91call fn_414ac0
    00414c96call fn_414ac0
    00414c9bcall fn_414ac0
    00414ca0call fn_414ac0
    00414ca5call fn_414ac0
    00414caacall fn_414ac0
    00414cafcall fn_414ac0
    00414cb4call fn_414ac0
    00414cb9call fn_414ac0
    00414cbecall fn_414ac0
    00414cc3call fn_414ac0
    00414cc8call fn_414ac0
    00414ccdcall fn_414ac0
    00414cd2call fn_414ac0
    00414cd7call fn_414ac0
    00414cdccall fn_414ac0
    00414ce1call fn_414ac0
    00414ce6call fn_414ac0
    00414cebcall fn_414ac0
    00414cf0call fn_414ac0
    00414cf5call fn_414ac0
    00414cfacall fn_414ac0
    00414cffcall fn_414ac0
    00414d04call fn_414ac0
    00414d09call fn_414ac0
    00414d0ecall fn_414ac0
    00414d13call fn_414ac0
    00414d18call fn_414ac0
    00414d1dcall fn_414ac0
    00414d22call fn_414ac0
    00414d27call fn_414ac0
    00414d2ccall fn_414ac0
    00414d31call fn_414ac0
    00414d36call fn_414ac0
    00414d3bcall fn_414ac0
    00414d40call fn_414ac0
    00414d45call fn_414ac0
    00414d4acall fn_414ac0
    00414d4fcall fn_414ac0
    00414d54call fn_414ac0
    00414d59call fn_414ac0
    00414d5ecall fn_414ac0
    00414d63call fn_414ac0
    00414d68call fn_414ac0
    00414d6dcall fn_414ac0
    00414d72call fn_414ac0
    00414d77call fn_414ac0
    00414d7ccall fn_414ac0
    00414d81call fn_414ac0
    00414d86call fn_414ac0
    00414d8bcall fn_414ac0
    00414d90call fn_414ac0
    00414d95call fn_414ac0
    00414d9acall fn_414ac0
    00414d9fcall fn_414ac0
    00414da4call fn_414ac0
    00414da9call fn_414ac0
    00414daecall fn_414ac0
    00414db3call fn_414ac0
    00414db8call fn_414ac0
    00414dbdcall fn_414ac0
    00414dc2call fn_414ac0
    00414dc7call fn_414ac0
    00414dcccall fn_414ac0
    00414dd1call fn_414ac0
    00414dd6call fn_414ac0
    00414ddbcall fn_414ac0
    00414de0call fn_414ac0
    00414de5call fn_414ac0
    00414deacall fn_414ac0
    00414defcall fn_414ac0
    00414df4call fn_414ac0
    00414df9call fn_414ac0
    00414dfecall fn_414ac0
    00414e03call fn_414ac0
    00414e08call fn_414ac0
    00414e0dcall fn_414ac0
    00414e12call fn_414ac0
    00414e17call fn_414ac0
    00414e1ccall fn_414ac0
    00414e21call fn_414ac0
    00414e26call fn_414ac0
    00414e2bcall fn_414ac0
    00414e30call fn_414ac0
    00414e35call fn_414ac0
    00414e3acall fn_414ac0
    00414e3fcall fn_414ac0
    00414e44call fn_414ac0
    00414e49call fn_414ac0
    00414e4ecall fn_414ac0
    00414e53call fn_414ac0
    00414e58call fn_414ac0
    00414e5dcall fn_414ac0
    00414e62call fn_414ac0
    00414e67call fn_414ac0
    00414e6ccall fn_414ac0
    00414e71call fn_414ac0
    00414e76call fn_414ac0
    00414e7bcall fn_414ac0
    00414e80call fn_414ac0
    00414e85call fn_414ac0
    00414e8acall fn_414ac0
    00414e8fcall fn_414ac0
    00414e94call fn_414ac0
    00414e99call fn_414ac0
    00414e9ecall fn_414ac0
    00414ea3call fn_414ac0
    00414ea8call fn_414ac0
    00414eadcall fn_414ac0
    00414eb2call fn_414ac0
    00414eb7call fn_414ac0
    00414ebcadd rsp, 40
    00414ec0ret
    00414ad0
    00414ec1
    00414ec1 // align 0x10
    00414ed0
    00414ed0__dbk_fcall_wrapper:
    00414ed0push rbp
    00414ed1sub rsp, 272
    00414ed8mov rbp, rsp
    00414edbmov [rbp+248], rbp
    00414ee2mov [rbp+264], 0
    00414eednop
    00414eeemov rcx, [rbp+264]
    00414ef5mov rdx, [rbp+264]
    00414efcmov r8, [rbp+264]
    00414f03mov r9, [rbp+264]
    00414f0amov rax, [rbp+264]
    00414f11mov [rsp+32], rax
    00414f16mov rax, [rbp+264]
    00414f1dmov [rsp+40], rax
    00414f22mov rax, [rbp+264]
    00414f29mov [rsp+48], rax
    00414f2emov rax, [rbp+264]
    00414f35mov [rsp+56], rax
    00414f3amov rax, [rbp+264]
    00414f41mov [rsp+64], rax
    00414f46mov rax, [rbp+264]
    00414f4dmov [rsp+72], rax
    00414f52mov rax, [rbp+264]
    00414f59mov [rsp+80], rax
    00414f5emov rax, [rbp+264]
    00414f65mov [rsp+88], rax
    00414f6amov rax, [rbp+264]
    00414f71mov [rsp+96], rax
    00414f76mov rax, [rbp+264]
    00414f7dmov [rsp+104], rax
    00414f82mov rax, [rbp+264]
    00414f89mov [rsp+112], rax
    00414f8emov rax, [rbp+264]
    00414f95mov [rsp+120], rax
    00414f9amov rax, [rbp+264]
    00414fa1mov [rsp+128], rax
    00414fa9mov rax, [rbp+264]
    00414fb0mov [rsp+136], rax
    00414fb8mov rax, [rbp+264]
    00414fbfmov [rsp+144], rax
    00414fc7mov rax, [rbp+264]
    00414fcemov [rsp+152], rax
    00414fd6mov rax, [rbp+264]
    00414fddmov [rsp+160], rax
    00414fe5mov rax, [rbp+264]
    00414fecmov [rsp+168], rax
    00414ff4mov rax, [rbp+264]
    00414ffbmov [rsp+176], rax
    00415003mov rax, [rbp+264]
    0041500amov [rsp+184], rax
    00415012mov rax, [rbp+264]
    00415019mov [rsp+192], rax
    00415021mov rax, [rbp+264]
    00415028mov [rsp+200], rax
    00415030mov rax, [rbp+264]
    00415037mov [rsp+208], rax
    0041503fmov rax, [rbp+264]
    00415046mov [rsp+216], rax
    0041504emov rax, [rbp+264]
    00415055mov [rsp+224], rax
    0041505dmov rax, [rbp+264]
    00415064mov [rsp+232], rax
    0041506ccall fn_414ad0
    00415071jmp 0x415201
    00415076
    00415076 90 90 48 8b 8d 08 01 00 00 48 ..H......H
    00415080 8b 95 08 01 00 00 4c 8b 85 08 01 00 00 4c 8b 8d ......L......L..
    00415090 08 01 00 00 48 8b 85 08 01 00 00 48 89 44 24 20 ....H......H.D$
    004150a0 48 8b 85 08 01 00 00 48 89 44 24 28 48 8b 85 08 H......H.D$(H...
    004150b0 01 00 00 48 89 44 24 30 48 8b 85 08 01 00 00 48 ...H.D$0H......H
    004150c0 89 44 24 38 48 8b 85 08 01 00 00 48 89 44 24 40 .D$8H......H.D$@
    004150d0 48 8b 85 08 01 00 00 48 89 44 24 48 48 8b 85 08 H......H.D$HH...
    004150e0 01 00 00 48 89 44 24 50 48 8b 85 08 01 00 00 48 ...H.D$PH......H
    004150f0 89 44 24 58 48 8b 85 08 01 00 00 48 89 44 24 60 .D$XH......H.D$`
    00415100 48 8b 85 08 01 00 00 48 89 44 24 68 48 8b 85 08 H......H.D$hH...
    00415110 01 00 00 48 89 44 24 70 48 8b 85 08 01 00 00 48 ...H.D$pH......H
    00415120 89 44 24 78 48 8b 85 08 01 00 00 48 89 84 24 80 .D$xH......H..$.
    00415130 00 00 00 48 8b 85 08 01 00 00 48 89 84 24 88 00 ...H......H..$..
    00415140 00 00 48 8b 85 08 01 00 00 48 89 84 24 90 00 00 ..H......H..$...
    00415150 00 48 8b 85 08 01 00 00 48 89 84 24 98 00 00 00 .H......H..$....
    00415160 48 8b 85 08 01 00 00 48 89 84 24 a0 00 00 00 48 H......H..$....H
    00415170 8b 85 08 01 00 00 48 89 84 24 a8 00 00 00 48 8b ......H..$....H.
    00415180 85 08 01 00 00 48 89 84 24 b0 00 00 00 48 8b 85 .....H..$....H..
    00415190 08 01 00 00 48 89 84 24 b8 00 00 00 48 8b 85 08 ....H..$....H...
    004151a0 01 00 00 48 89 84 24 c0 00 00 00 48 8b 85 08 01 ...H..$....H....
    004151b0 00 00 48 89 84 24 c8 00 00 00 48 8b 85 08 01 00 ..H..$....H.....
    004151c0 00 48 89 84 24 d0 00 00 00 48 8b 85 08 01 00 00 .H..$....H......
    004151d0 48 89 84 24 d8 00 00 00 48 8b 85 08 01 00 00 48 H..$....H......H
    004151e0 89 84 24 e0 00 00 00 48 8b 85 08 01 00 00 48 89 ..$....H......H.
    004151f0 84 24 e8 00 00 00 e8 d5 f8 ff ff e8 20 5f ff ff .$.......... _..
    00415200 90 .
    00415201
    00415201loc_415201:
    00415201lea rsp, [rbp+272]
    00415208pop rbp
    00415209ret
    00414ed0
    0041520a
    0041520a 64 48 8d 44 20 00 dH.D .
    00415210
    00415210fn_415210:
    00415210sub rsp, 40
    00415214call fn_40b050
    00415219add rsp, 40
    0041521dret
    00415210
    0041521e
    0041521e // align 0x10
    00415220
    00415220fn_415220:
    00415220push rbx
    00415221sub rsp, 32
    00415225mov rbx, rcx
    00415228mov [rip+0x47196], 0
    00415232xor ecx, ecx
    00415234call GetModuleHandleW
    00415239mov [rip+0x56030], rax
    00415240mov rax, [rip+0x56029]
    00415247mov [rip+0x471aa], rax
    0041524emov [rip+0x471a7], 0
    00415259mov [rip+0x471a4], 0
    00415264lea rax, [rbx+16]
    00415268mov [rip+0x471a9], rax
    0041526flea rax, [rip-934]
    00415276mov [rip+0x56003], rax
    0041527dcall fn_414aa0
    00415282mov rcx, rbx
    00415285lea rdx, [rip+0x47164]
    0041528ccall fn_40b2c0
    00415291add rsp, 32
    00415295pop rbx
    00415296ret
    00415220
    00415297
    00415297 // align 0x10
    004152a0
    004152a0fn_4152a0:
    004152a0push rbp
    004152a1push r15
    004152a3push r14
    004152a5push r13
    004152a7push r12
    004152a9push rsi
    004152aapush rdi
    004152abpush rbx
    004152acsub rsp, 136
    004152b3lea rbp, [rsp+128]
    004152bbmov r14, rdx
    004152bemov rbx, rcx
    004152c1mov edx, [rbx]
    004152c3mov esi, [rbx+4]
    004152c6lea r12, [rip-0x152cd]
    004152cdadd rsi, r12
    004152d0mov r13l, [rbx+8]
    004152d4mov ecx, [rbx+12]
    004152d7mov eax, [rbx+16]
    004152damov r8l, [rbx+20]
    004152demov edi, [rbx+28]
    004152e1mov [rbp-80], 72
    004152e8mov [rbp-72], rbx
    004152ecmov [rbp-64], r14
    004152f0mov [rbp-56], rsi
    004152f4mov [rbp-48], 0
    004152fbxorps x0, x0
    004152femovups [rbp-28], x0
    00415302movups [rbp-40], x0
    00415306test dl, 1
    00415309jne 0x41532f
    0041530blea rax, [rbp-80]
    0041530fmov [rbp], rax
    00415313xor esi, esi
    00415315mov r9, rbp
    00415318mov ecx, 0xffffffffc06d0057
    0041531dxor edx, edx
    0041531fmov r8l, 1
    00415325call RaiseException
    0041532ajmp 0x415497
    0041532f
    0041532floc_41532f:
    0041532fadd rax, r12
    00415332add rcx, r12
    00415335mov r15, [r13+r12]
    0041533amov rdx, r14
    0041533dsub rdx, rcx
    00415340shr rdx, 3
    00415344mov edx, edx
    00415346mov rax, [rax+8*rdx]
    0041534amov rcx, rax
    0041534dshr rcx, 63
    00415351xor ecx, 1
    00415354test rax, rax
    00415357mov [rbp-48], ecx
    0041535amov [rbp-96], r8
    0041535emov [rbp-4], edi
    00415361mov [rbp-88], rdx
    00415365js 0x415380
    00415367mov eax, eax
    00415369lea rax, [rax+r12+2]
    0041536emov [rbp-40], rax
    00415372mov rax, [rip+0x55f0f]
    00415379test rax, rax
    0041537cjne 0x415392
    0041537ejmp 0x4153a6
    00415380
    00415380loc_415380:
    00415380movzx eax, ax
    00415383mov [rbp-40], eax
    00415386mov rax, [rip+0x55efb]
    0041538dtest rax, rax
    00415390je 0x4153a6
    00415392
    00415392loc_415392:
    00415392lea rdx, [rbp-80]
    00415396xor ecx, ecx
    00415398call rax
    0041539amov rsi, rax
    0041539dtest rsi, rsi
    004153a0jne 0x415471
    004153a6
    004153a6loc_4153a6:
    004153a6test r15, r15
    004153a9je 0x4154ae
    004153af
    004153afloc_4153af:
    004153afmov [rbp-32], r15
    004153b3mov rax, [rip+0x55ece]
    004153batest rax, rax
    004153bdje 0x4153d6
    004153bflea rdx, [rbp-80]
    004153c3mov ecx, 2
    004153c8call rax
    004153camov rsi, rax
    004153cdtest rsi, rsi
    004153d0jne 0x41546e
    004153d6
    004153d6loc_4153d6:
    004153d6cmp [rbx+20], 0
    004153daje 0x415412
    004153dccmp [rbx+28], 0
    004153e0je 0x415412
    004153e2movsxd rax, [r15+60]
    004153e6cmp [r15+rax], 17744
    004153eejne 0x415412
    004153f0mov ecx, [rbp-4]
    004153f3cmp [r15+rax+8], ecx
    004153f8jne 0x415412
    004153facmp [r15+rax+48], r15
    004153ffjne 0x415412
    00415401add r12, [rbp-96]
    00415405mov rax, [rbp-88]
    00415409mov rsi, [r12+8*rax]
    0041540dtest rsi, rsi
    00415410jne 0x41546e
    00415412
    00415412loc_415412:
    00415412mov rdx, [rbp-40]
    00415416mov rcx, r15
    00415419call GetProcAddress
    0041541emov rsi, rax
    00415421test rsi, rsi
    00415424jne 0x41546e
    00415426call GetLastError
    0041542bmov [rbp-16], eax
    0041542emov rax, [rip+0x55e5b]
    00415435test rax, rax
    00415438je 0x41544d
    0041543alea rdx, [rbp-80]
    0041543emov ecx, 4
    00415443call rax
    00415445mov rsi, rax
    00415448test rsi, rsi
    0041544bjne 0x41546e
    0041544d
    0041544dloc_41544d:
    0041544dlea rax, [rbp-80]
    00415451mov [rbp], rax
    00415455mov r9, rbp
    00415458mov ecx, 0xffffffffc06d007f
    0041545dxor edx, edx
    0041545fmov r8l, 1
    00415465call RaiseException
    0041546amov rsi, [rbp-24]
    0041546e
    0041546eloc_41546e:
    0041546emov [r14], rsi
    00415471
    00415471loc_415471:
    00415471mov rbx, [rip+0x55e10]
    00415478test rbx, rbx
    0041547bje 0x415497
    0041547dmov [rbp-16], 0
    00415484mov [rbp-32], r15
    00415488mov [rbp-24], rsi
    0041548clea rdx, [rbp-80]
    00415490mov ecx, 5
    00415495call rbx
    00415497
    00415497loc_415497:
    00415497mov rax, rsi
    0041549aadd rsp, 136
    004154a1pop rbx
    004154a2pop rdi
    004154a3pop rsi
    004154a4pop r12
    004154a6pop r13
    004154a8pop r14
    004154aapop r15
    004154acpop rbp
    004154adret
    004154ae
    004154aeloc_4154ae:
    004154aemov rax, [rip+0x55dd3]
    004154b5test rax, rax
    004154b8je 0x4154cd
    004154balea rdx, [rbp-80]
    004154bemov ecx, 1
    004154c3call rax
    004154c5mov r15, rax
    004154c8test r15, r15
    004154cbjne 0x4154de
    004154cd
    004154cdloc_4154cd:
    004154cdmov rcx, [rbp-56]
    004154d1call LoadLibraryA
    004154d6mov r15, rax
    004154d9test r15, r15
    004154dcje 0x41552b
    004154de
    004154deloc_4154de:
    004154demov rax, r15
    004154e1xchg [r13+r12], rax
    004154e6cmp r15, rax
    004154e9je 0x41551e
    004154ebcmp [rbx+24], 0
    004154efje 0x4153af
    004154f5mov ecx, 64
    004154famov edx, 16
    004154ffcall LocalAlloc
    00415504mov [rax+8], rbx
    00415508mov rcx, [rip+0x55d99]
    0041550fmov [rax], rcx
    00415512mov [rip+0x55d8f], rax
    00415519jmp 0x4153af
    0041551e
    0041551eloc_41551e:
    0041551emov rcx, r15
    00415521call FreeLibrary
    00415526jmp 0x4153af
    0041552b
    0041552bloc_41552b:
    0041552bcall GetLastError
    00415530mov [rbp-16], eax
    00415533mov rax, [rip+0x55d56]
    0041553atest rax, rax
    0041553dje 0x415552
    0041553flea rdx, [rbp-80]
    00415543mov ecx, 3
    00415548call rax
    0041554amov r15, rax
    0041554dtest r15, r15
    00415550jne 0x4154de
    00415552
    00415552loc_415552:
    00415552lea rax, [rbp-80]
    00415556mov [rbp], rax
    0041555amov r9, rbp
    0041555dmov ecx, 0xffffffffc06d007e
    00415562xor edx, edx
    00415564mov r8l, 1
    0041556acall RaiseException
    0041556fmov rsi, [rbp-24]
    00415573jmp 0x415497
    004152a0
    00415578
    00415578 // align 0x10
    00415580
    00415580fn_415580:
    00415580push rbp
    00415581push r15
    00415583push r14
    00415585push r13
    00415587push r12
    00415589push rsi
    0041558apush rdi
    0041558bpush rbx
    0041558csub rsp, 72
    00415590lea rbp, [rsp+64]
    00415595xor eax, eax
    00415597test rcx, rcx
    0041559aje 0x41566b
    004155a0mov r11, rcx
    004155a3nop [rax+rax]
    004155b0
    004155b0loc_4155b0:
    004155b0cmp [r11], 0
    004155b4lea r11, [r11+1]
    004155b8jne 0x4155b0
    004155bamov rdx, rcx
    004155bdnot rdx
    004155c0add r11, rdx
    004155c3mov r13, [rip+0x55cde]
    004155catest r13, r13
    004155cdje 0x415c18
    004155d3
    004155d3loc_4155d3:
    004155d3test rcx, rcx
    004155d6je 0x415683
    004155dclea r9, [r11-1]
    004155e0mov r8l, 1
    004155e6sub r8, r11
    004155e9lea r12, [rip-0x155f0]
    004155f0
    004155f0loc_4155f0:
    004155f0mov r15, r13
    004155f3mov r10, [r15+8]
    004155f7mov edx, [r10+4]
    004155fbadd rdx, r12
    004155femov rbx, rdx
    00415601nop [rax+rax]
    00415610
    00415610loc_415610:
    00415610cmp [rbx], 0
    00415613lea rbx, [rbx+1]
    00415617jne 0x415610
    00415619mov rsi, rdx
    0041561cnot rsi
    0041561fadd rbx, rsi
    00415622mov r13, [r15]
    00415625cmp rbx, r11
    00415628jne 0x415661
    0041562atest r11, r11
    0041562dje 0x415987
    00415633test r9, r9
    00415636je 0x415654
    00415638mov rdi, r8
    0041563bmov rsi, rcx
    0041563enop
    00415640
    00415640loc_415640:
    00415640movzx ebx, [rsi]
    00415643cmp bl, [rdx]
    00415645jne 0x415657
    00415647inc rsi
    0041564ainc rdx
    0041564dinc rdi
    00415650jne 0x415640
    00415652jmp 0x415657
    00415654
    00415654loc_415654:
    00415654mov rsi, rcx
    00415657
    00415657loc_415657:
    00415657mov bl, [rsi]
    00415659cmp bl, [rdx]
    0041565bje 0x415987
    00415661
    00415661loc_415661:
    00415661test r13, r13
    00415664jne 0x4155f0
    00415666jmp 0x415c18
    0041566b
    0041566bloc_41566b:
    0041566bxor r11l, r11l
    0041566emov r13, [rip+0x55c33]
    00415675test r13, r13
    00415678jne 0x4155d3
    0041567ejmp 0x415c18
    00415683
    00415683loc_415683:
    00415683xor eax, eax
    00415685lea r15, [rip-0x1568c]
    0041568cnop [rax]
    00415690
    00415690loc_415690:
    00415690mov r12, r13
    00415693mov rcx, [r12+8]
    00415698mov edx, [rcx+4]
    0041569badd rdx, r15
    0041569enop
    004156a0
    004156a0loc_4156a0:
    004156a0cmp [rdx], 0
    004156a3lea rdx, [rdx+1]
    004156a7jne 0x4156a0
    004156a9mov r13, [r12]
    004156admov r9l, [rcx+24]
    004156b1test r9, r9
    004156b4je 0x415979
    004156bamov esi, [rcx+8]
    004156bdmov r10l, [rcx+12]
    004156c1mov rcx, [rsi+r15]
    004156c5cmp [r10+r15], 0
    004156caje 0x415930
    004156d0mov [rbp], rsi
    004156d4lea r8, [r15+r10]
    004156d8lea rdx, [r15+r9]
    004156dclea rsi, [r10+r15+8]
    004156e1mov eax, 1
    004156e6xor ebx, ebx
    004156e8nop [rax+rax]
    004156f0
    004156f0loc_4156f0:
    004156f0mov edi, eax
    004156f2lea eax, [rdi+1]
    004156f5cmp [rsi+8*rbx], 0
    004156falea rbx, [rbx+1]
    004156fejne 0x4156f0
    00415700test ebx, ebx
    00415702mov rsi, [rbp]
    00415706je 0x415930
    0041570cmov r14l, ebx
    0041570fshl r14, 3
    00415713cmp ebx, 4
    00415716jb 0x4158b0
    0041571clea rax, [r15+r10]
    00415720lea rbx, [r14+r9]
    00415724add rbx, r15
    00415727cmp rax, rbx
    0041572ajae 0x415740
    0041572clea rax, [r14+r10]
    00415730add rax, r15
    00415733lea rbx, [r15+r9]
    00415737cmp rbx, rax
    0041573ajb 0x4158b0
    00415740
    00415740loc_415740:
    00415740mov rbx, r14
    00415743mov rax, 0x7ffffffe0
    0041574dand rbx, rax
    00415750lea r11, [rbx-32]
    00415754mov rsi, r11
    00415757shr rsi, 5
    0041575binc rsi
    0041575ecmp r11, 96
    00415762mov [rbp-8], r13
    00415766mov [rbp-24], rbx
    0041576amov [rbp-16], rcx
    0041576ejae 0x415788
    00415770mov rbx, r9
    00415773mov rcx, r15
    00415776xor r11l, r11l
    00415779test sil, 3
    0041577djne 0x41582e
    00415783jmp 0x41587d
    00415788
    00415788loc_415788:
    00415788mov rax, r15
    0041578blea r15, [r10+rax+112]
    00415790mov rcx, rax
    00415793mov rbx, r9
    00415796lea r9, [r9+rax+112]
    0041579bmov eax, edi
    0041579dand eax, -4
    004157a0lea rax, [8*rax-32]
    004157a8shr rax, 5
    004157aclea r13l, [rax+1]
    004157b0and r13l, 3
    004157b4dec r13
    004157b7sub r13, rax
    004157baxor r11l, r11l
    004157bdnop [rax]
    004157c0
    004157c0loc_4157c0:
    004157c0movups x0, [r9+r11-112]
    004157c6movups x1, [r9+r11-96]
    004157ccmovups [r15+r11-112], x0
    004157d2movups [r15+r11-96], x1
    004157d8movups x0, [r9+r11-80]
    004157demovups x1, [r9+r11-64]
    004157e4movups [r15+r11-80], x0
    004157eamovups [r15+r11-64], x1
    004157f0movups x0, [r9+r11-48]
    004157f6movups x1, [r9+r11-32]
    004157fcmovups [r15+r11-48], x0
    00415802movups [r15+r11-32], x1
    00415808movups x0, [r9+r11-16]
    0041580emovups x1, [r9+r11]
    00415813movups [r15+r11-16], x0
    00415819movups [r15+r11], x1
    0041581esub r11, -128
    00415822add r13, 4
    00415826jne 0x4157c0
    00415828test sil, 3
    0041582cje 0x41587d
    0041582e
    0041582eloc_41582e:
    0041582eadd rbx, r11
    00415831lea rax, [rip-0x15828]
    00415838add rbx, rax
    0041583badd r10, r11
    0041583eadd r10, rax
    00415841and edi, 12
    00415844lea eax, [8*rdi-32]
    0041584bshr eax, 5
    0041584einc eax
    00415850and eax, 3
    00415853neg rax
    00415856nop [rax+rax]
    00415860
    00415860loc_415860:
    00415860movups x0, [rbx-16]
    00415864movups x1, [rbx]
    00415867movups [r10-16], x0
    0041586cmovups [r10], x1
    00415870add rbx, 32
    00415874add r10, 32
    00415878inc rax
    0041587bjne 0x415860
    0041587d
    0041587dloc_41587d:
    0041587dmov rax, [rbp-24]
    00415881cmp r14, rax
    00415884mov r13, [rbp-8]
    00415888mov r15, rcx
    0041588bmov rsi, [rbp]
    0041588fmov rcx, [rbp-16]
    00415893je 0x415930
    00415899add r8, rax
    0041589csub r14, rax
    0041589fadd rdx, rax
    004158a2nop [rax+rax]
    004158b0
    004158b0loc_4158b0:
    004158b0lea rdi, [r14-1]
    004158b4mov rbx, r14
    004158b7and rbx, 7
    004158bbje 0x4158d4
    004158bdneg rbx
    004158c0
    004158c0loc_4158c0:
    004158c0dec r14
    004158c3movzx eax, [rdx]
    004158c6mov [r8], al
    004158c9inc r8
    004158ccinc rdx
    004158cfinc rbx
    004158d2jne 0x4158c0
    004158d4
    004158d4loc_4158d4:
    004158d4cmp rdi, 7
    004158d8jb 0x415930
    004158danop [rax+rax]
    004158e0
    004158e0loc_4158e0:
    004158e0movzx eax, [rdx]
    004158e3mov [r8], al
    004158e6movzx eax, [rdx+1]
    004158eamov [r8+1], al
    004158eemovzx eax, [rdx+2]
    004158f2mov [r8+2], al
    004158f6movzx eax, [rdx+3]
    004158famov [r8+3], al
    004158femovzx eax, [rdx+4]
    00415902mov [r8+4], al
    00415906movzx eax, [rdx+5]
    0041590amov [r8+5], al
    0041590emovzx eax, [rdx+6]
    00415912mov [r8+6], al
    00415916add r14, -8
    0041591amovzx eax, [rdx+7]
    0041591elea rdx, [rdx+8]
    00415922mov [r8+7], al
    00415926lea r8, [r8+8]
    0041592ajne 0x4158e0
    0041592cnop [rax]
    00415930
    00415930loc_415930:
    00415930call FreeLibrary
    00415935mov [rsi+r15], 0
    0041593dlea rcx, [rip+0x55964]
    00415944nop [rax+rax]
    00415950
    00415950loc_415950:
    00415950mov rax, rcx
    00415953mov rcx, [rax]
    00415956cmp rcx, r12
    00415959je 0x415960
    0041595btest rcx, rcx
    0041595ejne 0x415950
    00415960
    00415960loc_415960:
    00415960cmp rcx, r12
    00415963jne 0x41596c
    00415965mov rcx, [r12]
    00415969mov [rax], rcx
    0041596c
    0041596cloc_41596c:
    0041596cmov rcx, r12
    0041596fcall LocalFree
    00415974mov eax, 1
    00415979
    00415979loc_415979:
    00415979test r13, r13
    0041597cjne 0x415690
    00415982jmp 0x415c18
    00415987
    00415987loc_415987:
    00415987mov r8l, [r10+24]
    0041598btest r8, r8
    0041598eje 0x415c18
    00415994mov r13l, [r10+8]
    00415998mov r9l, [r10+12]
    0041599cmov rcx, [r13+r12]
    004159a1cmp [r9+r12], 0
    004159a6je 0x415bd4
    004159aclea rax, [r12+r9]
    004159b0lea rdx, [r12+r8]
    004159b4lea rdi, [r9+r12+8]
    004159b9xor r11l, r11l
    004159bcnop [rax]
    004159c0
    004159c0loc_4159c0:
    004159c0cmp [rdi+8*r11], 0
    004159c5lea r11, [r11+1]
    004159c9jne 0x4159c0
    004159cbtest r11l, r11l
    004159ceje 0x415bd4
    004159d4mov r14l, r11l
    004159d7shl r14, 3
    004159dbcmp r11l, 4
    004159dfjb 0x415b59
    004159e5lea rdi, [r12+r9]
    004159e9lea rsi, [r14+r8]
    004159edadd rsi, r12
    004159f0cmp rdi, rsi
    004159f3jae 0x415a09
    004159f5lea rdi, [r14+r9]
    004159f9add rdi, r12
    004159fclea rsi, [r12+r8]
    00415a00cmp rsi, rdi
    00415a03jb 0x415b59
    00415a09
    00415a09loc_415a09:
    00415a09mov [rbp], r13
    00415a0dmov rbx, 0x7ffffffe0
    00415a17and rbx, r14
    00415a1amov [rbp-8], rbx
    00415a1elea rdi, [rbx-32]
    00415a22mov rbx, rdi
    00415a25shr rbx, 5
    00415a29inc rbx
    00415a2ccmp rdi, 96
    00415a30jae 0x415a49
    00415a32mov rdi, r12
    00415a35xor r10l, r10l
    00415a38test bl, 3
    00415a3bmov r12, rdi
    00415a3ejne 0x415af1
    00415a44jmp 0x415b3f
    00415a49
    00415a49loc_415a49:
    00415a49mov r10, rbx
    00415a4cmov rbx, r12
    00415a4flea r12, [r9+rbx+112]
    00415a54mov rdi, rbx
    00415a57lea r13, [r8+rbx+112]
    00415a5cmov ebx, r11l
    00415a5fand ebx, -4
    00415a62lea rbx, [8*rbx-32]
    00415a6ashr rbx, 5
    00415a6elea esi, [rbx+1]
    00415a71and esi, 3
    00415a74dec rsi
    00415a77sub rsi, rbx
    00415a7amov rbx, r10
    00415a7dxor r10l, r10l
    00415a80
    00415a80loc_415a80:
    00415a80movups x0, [r13+r10-112]
    00415a86movups x1, [r13+r10-96]
    00415a8cmovups [r12+r10-112], x0
    00415a92movups [r12+r10-96], x1
    00415a98movups x0, [r13+r10-80]
    00415a9emovups x1, [r13+r10-64]
    00415aa4movups [r12+r10-80], x0
    00415aaamovups [r12+r10-64], x1
    00415ab0movups x0, [r13+r10-48]
    00415ab6movups x1, [r13+r10-32]
    00415abcmovups [r12+r10-48], x0
    00415ac2movups [r12+r10-32], x1
    00415ac8movups x0, [r13+r10-16]
    00415acemovups x1, [r13+r10]
    00415ad4movups [r12+r10-16], x0
    00415adamovups [r12+r10], x1
    00415adfsub r10, -128
    00415ae3add rsi, 4
    00415ae7jne 0x415a80
    00415ae9test bl, 3
    00415aecmov r12, rdi
    00415aefje 0x415b3f
    00415af1
    00415af1loc_415af1:
    00415af1add r8, r10
    00415af4lea r8, [r12+r8+16]
    00415af9add r9, r10
    00415afclea r9, [r12+r9+16]
    00415b01and r11l, 12
    00415b05lea ebx, [8*r11-32]
    00415b0dshr ebx, 5
    00415b10inc ebx
    00415b12and ebx, 3
    00415b15neg rbx
    00415b18nop [rax+rax]
    00415b20
    00415b20loc_415b20:
    00415b20movups x0, [r8-16]
    00415b25movups x1, [r8]
    00415b29movups [r9-16], x0
    00415b2emovups [r9], x1
    00415b32add r8, 32
    00415b36add r9, 32
    00415b3ainc rbx
    00415b3djne 0x415b20
    00415b3f
    00415b3floc_415b3f:
    00415b3fmov rbx, [rbp-8]
    00415b43cmp r14, rbx
    00415b46mov r13, [rbp]
    00415b4aje 0x415bd4
    00415b50add rax, rbx
    00415b53sub r14, rbx
    00415b56add rdx, rbx
    00415b59
    00415b59loc_415b59:
    00415b59lea rsi, [r14-1]
    00415b5dmov rdi, r14
    00415b60and rdi, 7
    00415b64je 0x415b83
    00415b66neg rdi
    00415b69nop [rax]
    00415b70
    00415b70loc_415b70:
    00415b70dec r14
    00415b73movzx ebx, [rdx]
    00415b76mov [rax], bl
    00415b78inc rax
    00415b7binc rdx
    00415b7einc rdi
    00415b81jne 0x415b70
    00415b83
    00415b83loc_415b83:
    00415b83cmp rsi, 7
    00415b87jb 0x415bd4
    00415b89nop [rax]
    00415b90
    00415b90loc_415b90:
    00415b90movzx ebx, [rdx]
    00415b93mov [rax], bl
    00415b95movzx ebx, [rdx+1]
    00415b99mov [rax+1], bl
    00415b9cmovzx ebx, [rdx+2]
    00415ba0mov [rax+2], bl
    00415ba3movzx ebx, [rdx+3]
    00415ba7mov [rax+3], bl
    00415baamovzx ebx, [rdx+4]
    00415baemov [rax+4], bl
    00415bb1movzx ebx, [rdx+5]
    00415bb5mov [rax+5], bl
    00415bb8movzx ebx, [rdx+6]
    00415bbcmov [rax+6], bl
    00415bbfadd r14, -8
    00415bc3movzx ebx, [rdx+7]
    00415bc7lea rdx, [rdx+8]
    00415bcbmov [rax+7], bl
    00415bcelea rax, [rax+8]
    00415bd2jne 0x415b90
    00415bd4
    00415bd4loc_415bd4:
    00415bd4call FreeLibrary
    00415bd9mov [r13+r12], 0
    00415be2lea rcx, [rip+0x556bf]
    00415be9nop [rax]
    00415bf0
    00415bf0loc_415bf0:
    00415bf0mov rax, rcx
    00415bf3mov rcx, [rax]
    00415bf6cmp rcx, r15
    00415bf9je 0x415c00
    00415bfbtest rcx, rcx
    00415bfejne 0x415bf0
    00415c00
    00415c00loc_415c00:
    00415c00cmp rcx, r15
    00415c03jne 0x415c0b
    00415c05mov rcx, [r15]
    00415c08mov [rax], rcx
    00415c0b
    00415c0bloc_415c0b:
    00415c0bmov rcx, r15
    00415c0ecall LocalFree
    00415c13mov eax, 1
    00415c18
    00415c18loc_415c18:
    00415c18add rsp, 72
    00415c1cpop rbx
    00415c1dpop rdi
    00415c1epop rsi
    00415c1fpop r12
    00415c21pop r13
    00415c23pop r14
    00415c25pop r15
    00415c27pop rbp
    00415c28ret
    00415580