File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    004003c0
    004003c0 00 00 00 00 00 00 00 00 00 00 00 00 00 10 08 00 ................
    004003d0 00 00 00 00 00 dc 06 00 00 00 00 00 00 00 00 00 ................
    004003e0 00 00 00 00 40 00 00 40 00 00 00 00 00 00 00 00 ....@..@........
    004003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00403100
    00403100CloseHandle:
    00403100jmp [rip+0x6e4d2]
    00403100
    00403106
    00403106 // align 0x10
    00403110
    00403110GetStdHandle:
    00403110jmp [rip+0x6e52a]
    00403110
    00403116
    00403116 // align 0x10
    00403120
    00403120CreateFileW:
    00403120jmp [rip+0x6e732]
    00403120
    00403126
    00403126 // align 0x10
    00403130
    00403130GetFileSize:
    00403130jmp [rip+0x6e61a]
    00403130
    00403136
    00403136 // align 0x10
    00403140
    00403140GetFileType:
    00403140jmp [rip+0x6e46a]
    00403140
    00403146
    00403146 // align 0x10
    00403150
    00403150ReadFile:
    00403150jmp [rip+0x6e502]
    00403150
    00403156
    00403156 // align 0x10
    00403160
    00403160SetEndOfFile:
    00403160jmp [rip+0x6e6b2]
    00403160
    00403166
    00403166 // align 0x10
    00403170
    00403170SetFilePointer:
    00403170jmp [rip+0x6e5c2]
    00403170
    00403176
    00403176 // align 0x10
    00403180
    00403180WriteFile:
    00403180jmp [rip+0x6e702]
    00403180
    00403186
    00403186 // align 0x10
    00403190
    00403190FindClose:
    00403190jmp [rip+0x6e69a]
    00403190
    00403196
    00403196 // align 0x10
    004031a0
    004031a0FindFirstFileW:
    004031a0jmp [rip+0x6e63a]
    004031a0
    004031a6
    004031a6 // align 0x10
    004031b0
    004031b0InitializeCriticalSection:
    004031b0jmp [rip+0x6e5b2]
    004031b0
    004031b6
    004031b6 // align 0x10
    004031c0
    004031c0EnterCriticalSection:
    004031c0jmp [rip+0x6e562]
    004031c0
    004031c6
    004031c6 // align 0x10
    004031d0
    004031d0LeaveCriticalSection:
    004031d0jmp [rip+0x6e5ca]
    004031d0
    004031d6
    004031d6 // align 0x10
    004031e0
    004031e0DeleteCriticalSection:
    004031e0jmp [rip+0x6e6b2]
    004031e0
    004031e6
    004031e6 // align 0x10
    004031f0
    004031f0CreateThread:
    004031f0jmp [rip+0x6e48a]
    004031f0
    004031f6
    004031f6 // align 0x10
    00403200
    00403200GetCurrentThreadId:
    00403200jmp [rip+0x6e502]
    00403200
    00403206
    00403206 // align 0x10
    00403210
    00403210SwitchToThread:
    00403210jmp [rip+0x6e4ca]
    00403210
    00403216
    00403216 // align 0x10
    00403220
    00403220ExitProcess:
    00403220jmp [rip+0x6e3ea]
    00403220
    00403226
    00403226 // align 0x10
    00403230
    00403230RaiseException:
    00403230jmp [rip+0x6e48a]
    00403230
    00403236
    00403236 // align 0x10
    00403240
    00403240RtlUnwind:
    00403240jmp [rip+0x6e3da]
    00403240
    00403246
    00403246 // align 0x10
    00403250
    00403250RtlUnwindEx:
    00403250jmp [rip+0x6e372]
    00403250
    00403256
    00403256 // align 0x10
    00403260
    00403260UnhandledExceptionFilter:
    00403260jmp [rip+0x6e4aa]
    00403260
    00403266
    00403266 // align 0x10
    00403270
    00403270GetLastError:
    00403270jmp [rip+0x6e3ea]
    00403270
    00403276
    00403276 // align 0x10
    00403280
    00403280FreeLibrary:
    00403280jmp [rip+0x6e3ca]
    00403280
    00403286
    00403286 // align 0x10
    00403290
    00403290FindResourceW:
    00403290jmp [rip+0x6e3e2]
    00403290
    00403296
    00403296 // align 0x10
    004032a0
    004032a0LoadResource:
    004032a0jmp [rip+0x6e49a]
    004032a0
    004032a6
    004032a6 // align 0x10
    004032b0
    004032b0LoadStringW:
    004032b0jmp [rip+0x6e6e2]
    004032b0
    004032b6
    004032b6 // align 0x10
    004032c0
    004032c0LockResource:
    004032c0jmp [rip+0x6e422]
    004032c0
    004032c6
    004032c6 // align 0x10
    004032d0
    004032d0SizeofResource:
    004032d0jmp [rip+0x6e312]
    004032d0
    004032d6
    004032d6 // align 0x10
    004032e0
    004032e0FreeResource:
    004032e0jmp [rip+0x6e3ca]
    004032e0
    004032e6
    004032e6 // align 0x10
    004032f0
    004032f0GetCommandLineW:
    004032f0jmp [rip+0x6e492]
    004032f0
    004032f6
    004032f6 // align 0x10
    00403300
    00403300GetModuleFileNameW:
    00403300jmp [rip+0x6e362]
    00403300
    00403306
    00403306 // align 0x10
    00403310
    00403310GetModuleHandleW:
    00403310jmp [rip+0x6e332]
    00403310
    00403316
    00403316 // align 0x10
    00403320
    00403320GetProcAddress:
    00403320jmp [rip+0x6e482]
    00403320
    00403326
    00403326 // align 0x10
    00403330
    00403330GetStartupInfoW:
    00403330jmp [rip+0x6e422]
    00403330
    00403336
    00403336 // align 0x10
    00403340
    00403340LoadLibraryExW:
    00403340jmp [rip+0x6e3aa]
    00403340
    00403346
    00403346 // align 0x10
    00403350
    00403350GetACP:
    00403350jmp [rip+0x6e27a]
    00403350
    00403356
    00403356 // align 0x10
    00403360
    00403360GetConsoleCP:
    00403360jmp [rip+0x6e49a]
    00403360
    00403366
    00403366 // align 0x10
    00403370
    00403370GetConsoleOutputCP:
    00403370jmp [rip+0x6e47a]
    00403370
    00403376
    00403376 // align 0x10
    00403380
    00403380MultiByteToWideChar:
    00403380jmp [rip+0x6e4b2]
    00403380
    00403386
    00403386 // align 0x10
    00403390
    00403390WideCharToMultiByte:
    00403390jmp [rip+0x6e492]
    00403390
    00403396
    00403396 // align 0x10
    004033a0
    004033a0GetLocaleInfoW:
    004033a0jmp [rip+0x6e4aa]
    004033a0
    004033a6
    004033a6 // align 0x10
    004033b0
    004033b0GetUserDefaultUILanguage:
    004033b0jmp [rip+0x6e432]
    004033b0
    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