Function at 0x469c20
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x48]
mov edx, dword [0x41c578]
call fcn.0040775c
xor eax, eax
push ebp
push 0x46ae60
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40b094]
call fcn.004085b8
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter_1
test eax, eax
je 0x469cb5
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x469cb5
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.00407e28
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.00407e28
mov dword [0x60567c], eax
mov dword [0x605680], edx
push 0x46ae70
mov eax, dword [0x605678]
push eax
call fcn.00409e4c
test eax, eax
setne byte [0x605684]
cmp byte [0x605684], 0
je 0x469cdc
call fcn.004699e0
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x469cff
push 0x46aeb0
push 0x46aec8
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00409e4c
mov dword [0x605694], eax
mov eax, dword [0x61291c]
mov dword [eax], fcn.004690b0
mov eax, dword [0x612b8c]
mov dword [eax], 0x43ef90
mov eax, dword [0x6134c8]
mov dword [eax], 0x43f5a8
mov eax, 0x46921c
mov edx, dword [0x61302c]
mov dword [edx], eax
push 0x46aed8
push 0x46aef0
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409e4c
mov dword [0x6056a0], eax
push 0x46af0c
push 0x46af28
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409e4c
mov dword [0x6056a4], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x605678]
call fcn.00443c2c
mov edx, dword [ebp - 0xd4]
mov eax, 0x605ebc
call fcn.00408dac
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x469ddf
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x469ddf
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x469ddf
mov eax, dword [0x605678]
call fcn.00469328
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x605678]
je 0x469ddf
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00469328
call fcn.004698f0
push 0x617d9c
call sub.kernel32.dll_InitializeCriticalSection
push 0x617d84
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46ade3
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.0043629c
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040dc20
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46af48
call fcn.00405efc
mov eax, dword [ebp - 0xd8]
call fcn.004061fc
push eax
push 0x14
push 0
push 4
lea eax, [ebp - 0xbc]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov ebx, eax
call sub.kernel32.dll_GetLastError_1
test eax, eax
jne 0x469f15
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x60569c], eax
mov eax, dword [0x60569c]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00409b74
mov edx, dword [0x60569c]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00409b74
mov edx, dword [0x60569c]
mov dword [edx + 4], eax
mov eax, dword [0x60569c]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x60569c]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00434fe8
cmp dword [ebp - 4], 0
je 0x469f07
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x605558], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x46af6c
xor edx, edx
call fcn.00436c6c
jmp 0x469f5f
mov eax, dword [0x61354c]
mov eax, dword [eax]
mov dword [0x605558], eax
jmp 0x469f5f
test ebx, ebx
je 0x469f45
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x60569c], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x60569c]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x469f5f
push 0
push 0x46af84
push 0x46af90
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x60569c], 0
jne 0x469f82
push 0
push 0x46af84
push 0x46afb8
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x605558], 0
jne 0x469ffc
push 0xffffffffffffffff
mov eax, dword [0x60569c]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x469fe0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x60569c]
mov eax, dword [eax + 8]
test eax, eax
je 0x469fc4
mov edx, dword [eax]
mov dword [0x605558], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x469fb5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x469fe7
mov eax, dword [0x60569c]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x605678]
je 0x46a018
cmp byte [0x605684], 0
jne 0x46a018
xor ebx, ebx
jmp 0x46a01a
mov bl, 1
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46adda
mov eax, 0x605604
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605608
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60560c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605610
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605614
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605618
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60561c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605620
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605624
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605628
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60562c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605630
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60563c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605640
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605644
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605648
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60564c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605650
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605654
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605658
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60565c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605660
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605664
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605668
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x60566c
mov edx, dword [0x605678]
call fcn.00469238
mov eax, 0x605674
mov edx, dword [0x605678]
call fcn.00469238
cmp dword [0x60564c], 0
je 0x46a1f7
cmp dword [0x605604], 0
je 0x46a1f7
cmp dword [0x60560c], 0
je 0x46a1f7
cmp dword [0x605614], 0
jne 0x46a5b3
test bl, bl
je 0x46a5b3
mov esi, fcn.00408ed0
cmp word [esi], 0x25ff
jne 0x46a234
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x612bd4]
mov edi, dword [edi]
lea ecx, [ebp - 8]
lea edx, [ebp - 0x50]
mov eax, esi
call edi
mov eax, dword [ebp - 0x50]
cmp eax, dword [0x605678]
jne 0x46a234
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x46aff4
mov ecx, 0x78
mov edx, 0x46b03c
mov eax, dword [ebp - 0x50]
call fcn.00469598
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x46a26c
push 0x46b04c
mov ecx, 0x78
mov edx, 0x46b06c
mov eax, esi
call fcn.00469598
mov dword [ebp - 0x50], eax
push 0x46b07c
mov ecx, 0x78
mov edx, 0x46b0c4
xor eax, eax
call fcn.00469598
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x60564c], 0
jne 0x46a51c
cmp dword [ebp - 0x50], 0
je 0x46a51c
push 0x46b0cc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x60561c], eax
cmp dword [0x60561c], 0
je 0x46a513
mov eax, dword [0x60561c]
cmp byte [eax], 0xe9
je 0x46a513
push 0x46b12c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605620], eax
push 0x46b188
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605624], eax
push 0x46b1cc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605628], eax
push 0x46b258
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x60562c], eax
push 0x46b2a8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605630], eax
push 0x46b2e8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605634], eax
push 0x46b324
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x605638], eax
push 0x46b360
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
mov dword [0x60563c], eax
push 0x46b3a0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409e4c
lea edx, [ebp - 0x8c]
call fcn.00420680
mov byte [ebp - 0x49], 1
jmp 0x46a4f9
cmp dword [ebp - 0x84], 0
je 0x46a4d4
cmp byte [ebp - 0x85], 0
je 0x46a4d4
cmp dword [ebp - 0x78], 4
jne 0x46a4d4
cmp byte [ebp - 0x49], 0
je 0x46a449
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00420680
jmp 0x46a42c
cmp word [ebp - 0xae], 0xc7
jne 0x46a404
cmp byte [ebp - 0xac], 0x40
jne 0x46a404
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x46a404
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x605654], eax
jmp 0x46a4d4
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00420680
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0xb0]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0xb0], 0
je 0x46a4d4
cmp word [ebp - 0xae], 0xc3
jne 0x46a3cd
jmp 0x46a4d4
mov eax, dword [ebp - 0x84]
mov dword [0x60564c], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x60564c]
call fcn.00420680
jmp 0x46a4be
cmp dword [ebp - 0x84], 0
je 0x46a499
cmp word [ebp - 0x8a], 0xe8
jne 0x46a499
cmp byte [ebp - 0x85], 0
je 0x46a499
cmp dword [ebp - 0x78], 4
jne 0x46a499
mov eax, dword [ebp - 0x84]
mov dword [0x605650], eax
jmp 0x46a51c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x46a51c
cmp word [ebp - 0x8a], 0xc3
jne 0x46a466
jmp 0x46a51c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x46a51c
cmp word [ebp - 0x8a], 0xc3
jne 0x46a388
jmp 0x46a51c
xor ebx, ebx
xor eax, eax
mov dword [0x60561c], eax
test bl, bl
je 0x46a5b3
cmp dword [0x605604], 0
jne 0x46a551
test esi, esi
je 0x46a551
push 0x46b428
push esi
call fcn.00409e4c
mov dword [0x605604], eax
push 0x46b49c
push esi
call fcn.00409e4c
mov dword [0x605608], eax
cmp dword [0x60560c], 0
jne 0x46a57e
test edi, edi
je 0x46a57e
push 0x46b514
push edi
call fcn.00409e4c
mov dword [0x60560c], eax
push 0x46b588
push edi
call fcn.00409e4c
mov dword [0x605610], eax
cmp dword [0x605614], 0
jne 0x46a5b3
cmp dword [ebp - 0x54], 0
je 0x46a5b3
push 0x46b600
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409e4c
mov dword [0x605614], eax
push 0x46b67c
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409e4c
mov dword [0x605618], eax
mov eax, dword [0x612c4c]
mov dword [0x605ff0], eax
cmp dword [0x605654], 0
je 0x46a5d5
mov edx, 0x466f24
mov eax, dword [0x605654]
call fcn.0045f308
cmp dword [0x605604], 0
je 0x46a5ed
mov edx, 0x466548
mov eax, dword [0x605604]
call fcn.0045f308
cmp dword [0x605608], 0
je 0x46a605
mov edx, 0x466520
mov eax, dword [0x605608]
call fcn.0045f308
cmp dword [0x60560c], 0
je 0x46a61d
mov edx, 0x466548
mov eax, dword [0x60560c]
call fcn.0045f308
cmp dword [0x605610], 0
je 0x46a635
mov edx, 0x466520
mov eax, dword [0x605610]
call fcn.0045f308
cmp dword [0x605614], 0
je 0x46a64d
mov edx, 0x466548
mov eax, dword [0x605614]
call fcn.0045f308
cmp dword [0x605618], 0
je 0x46a665
mov edx, 0x466520
mov eax, dword [0x605618]
call fcn.0045f308
cmp dword [0x60561c], 0
je 0x46a67d
mov edx, 0x4664f4
mov eax, dword [0x60561c]
call fcn.0045f308
cmp dword [0x605640], 0
je 0x46a695
mov edx, 0x46658c
mov eax, dword [0x605640]
call fcn.0045f308
cmp dword [0x605644], 0
je 0x46a6ad
mov edx, 0x4665b4
mov eax, dword [0x605644]
call fcn.0045f308
cmp dword [0x605648], 0
je 0x46a6d7
mov byte [0x6055ec], 1
mov eax, 0x18
call fcn.004030e4
mov dword [0x606004], eax
mov eax, dword [0x606004]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x605620], 0
je 0x46a7af
cmp dword [0x605624], 0
je 0x46a7af
lea edx, [ebp - 0x48]
mov eax, dword [0x605620]
call fcn.00421980
mov eax, dword [ebp - 0x28]
call fcn.004082d0
dec eax
jne 0x46a714
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x605620], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x605624]
call fcn.00421980
mov eax, dword [ebp - 0x28]
call fcn.004082d0
dec eax
jne 0x46a737
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x605624], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x605620]
call fcn.00420680
jmp 0x46a79d
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46a77c
cmp esi, dword [0x605624]
jne 0x46a77c
cmp dword [ebp - 0x78], 4
jne 0x46a7af
cmp byte [ebp - 0x85], 0
je 0x46a7af
mov edx, 0x4667a4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46a7af
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a749
cmp dword [0x60563c], 0
je 0x46a845
mov esi, fcn.004031d8
cmp word [esi], 0x25ff
jne 0x46a7cf
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x60563c]
call fcn.00420680
jmp 0x46a833
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x46a810
cmp esi, edi
jne 0x46a810
cmp dword [ebp - 0x78], 4
jne 0x46a845
cmp byte [ebp - 0x85], 0
je 0x46a845
mov edx, 0x466664
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46a845
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a7e1
call fcn.00469254
lea edx, [ebp - 0x8c]
call fcn.00420680
mov byte [ebp - 0x49], 0
jmp 0x46a8b0
cmp byte [ebp - 0x85], 0
je 0x46a88f
cmp dword [ebp - 0x78], 4
jne 0x46a88f
cmp dword [ebp - 0x84], 0
je 0x46a88f
cmp byte [ebp - 0x49], 0
je 0x46a88b
mov edx, 0x4666c0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46a8c2
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a85b
call fcn.00469254
lea edx, [ebp - 0x8c]
call fcn.00420680
jmp 0x46a928
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46a907
cmp esi, dword [0x605650]
jne 0x46a907
cmp dword [ebp - 0x78], 4
jne 0x46a93a
cmp byte [ebp - 0x85], 0
je 0x46a93a
mov edx, 0x466888
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46a93a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a8d4
mov esi, dword [0x60564c]
test esi, esi
je 0x46a9be
cmp dword [0x605650], 0
je 0x46a9be
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420680
jmp 0x46a9ac
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x605650]
jne 0x46a98b
cmp dword [ebp - 0x78], 4
jne 0x46a9be
cmp byte [ebp - 0x85], 0
je 0x46a9be
mov edx, 0x466890
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46a9be
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a95c
mov esi, dword [0x605650]
test esi, esi
je 0x46aa39
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420680
jmp 0x46aa27
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x605650]
jne 0x46aa06
cmp dword [ebp - 0x78], 4
jne 0x46aa39
cmp byte [ebp - 0x85], 0
je 0x46aa39
mov edx, 0x4668a0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46aa39
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a9d7
call fcn.00469290
lea edx, [ebp - 0x8c]
call fcn.00420680
jmp 0x46aa6c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46aaad
cmp word [ebp - 0x8a], 0x8b
jne 0x46aa9b
cmp byte [ebp - 0x88], 0x15
jne 0x46aa9b
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x612c4c]
cmp eax, edx
je 0x46aaad
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46aa4b
cmp word [ebp - 0x8a], 0x8b
jne 0x46aac8
mov edx, 0x605ff4
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f360
call fcn.004692a4
lea edx, [ebp - 0x8c]
call fcn.00420680
jmp 0x46aafb
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46ab3c
cmp word [ebp - 0x8a], 0xff
jne 0x46ab2a
cmp byte [ebp - 0x88], 0x15
jne 0x46ab2a
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x612c4c]
cmp eax, edx
je 0x46ab3c
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46aada
cmp word [ebp - 0x8a], 0xff
jne 0x46ab57
mov edx, 0x605ff8
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f360
mov eax, dword [0x613260]
mov eax, dword [eax]
mov dword [0x605ffc], eax
call fcn.004692b8
lea edx, [ebp - 0x8c]
call fcn.00420680
jmp 0x46ab96
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46abc5
cmp word [ebp - 0x8a], 0xff
jne 0x46abb3
cmp byte [ebp - 0x88], 0x25
je 0x46abc5
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46ab75
cmp word [ebp - 0x8a], 0xff
jne 0x46abe0
mov edx, 0x606000
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f360
call fcn.0046927c
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420680
jmp 0x46ac19
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebp - 0x8c], 0
je 0x46ac2b
cmp byte [ebp - 0x87], 0
je 0x46abf6
mov eax, dword [ebp - 0x84]
mov dword [0x6056d4], eax
mov edx, 0x466f88
mov eax, esi
call fcn.0045f308
lea edx, [ebp - 0x8c]
mov eax, fcn.0040437c
call fcn.00420680
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46ac60
mov esi, eax
jmp 0x46ac65
mov esi, fcn.0040437c
call fcn.00469240
lea edx, [ebp - 0x8c]
call fcn.00420680
jmp 0x46acc3
cmp esi, dword [ebp - 0x84]
jne 0x46aca0
cmp dword [ebp - 0x78], 4
jne 0x46acd5
cmp byte [ebp - 0x85], 0
je 0x46acd5
mov edx, 0x467264
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f360
jmp 0x46acd5
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420680
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46ac77
call fcn.00469268
mov edx, 0x467274
call fcn.0045f308
cmp dword [0x605628], 0
je 0x46ad37
cmp dword [0x605630], 0
je 0x46ad37
mov edx, 0x465808
mov eax, dword [0x605628]
call fcn.0045f308
mov edx, 0x40b22c
mov eax, dword [0x605630]
call fcn.0045f308
cmp dword [0x60562c], 0
je 0x46ad2c
mov edx, 0x465864
mov eax, dword [0x60562c]
call fcn.0045f308
mov eax, dword [0x6130ec]
mov dword [eax], 0x465790
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045d3d4
call fcn.0043e558
mov esi, fcn.004059c0
cmp word [esi], 0x25ff
jne 0x46ad63
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x606010], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00421980
cmp byte [ebp - 0x48], 0
je 0x46ad84
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x606014], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x605678]
je 0x46ad9c
cmp byte [0x605684], 0
je 0x46ada6
mov eax, dword [0x605ebc]
call fcn.00467e34
mov eax, ebx
call fcn.00438ba8
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x46add5
mov eax, dword [0x605ebc]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x605f00], eax
call fcn.0043ebec
call fcn.0045d570
mov eax, 0x4661a4
test eax, eax
jmp 0x46ae13
lea eax, [ebp - 4]
call fcn.00434fe8
cmp dword [ebp - 4], 0
je 0x46adfd
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x605558], eax
jmp 0x46ae09
mov eax, dword [0x61354c]
mov eax, dword [eax]
mov dword [0x605558], eax
mov eax, 0x605ebc
call fcn.00408d94
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46ae67
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00405a60
lea eax, [ebp - 0xd4]
call fcn.00408d94
lea eax, [ebp - 0x48]
mov edx, dword [0x41c578]
call fcn.00407834
lea eax, [ebp - 8]
call fcn.00405a3c
lea eax, [ebp - 4]
mov edx, dword [0x40b094]
call fcn.004085b8
ret