Function at 0x46a074
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 [0x41ca60]
call fcn.004078ec
xor eax, eax
push ebp
push 0x46b2b4
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40b57c]
call fcn.004088a8
lea eax, [ebp - 0x60]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter_1
test eax, eax
je 0x46a109
lea eax, [ebp - 0x68]
push eax
call sub.KERNEL32.DLL_QueryPerformanceFrequency
test eax, eax
je 0x46a109
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.0040805c
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.0040805c
mov dword [0x66b6b0], eax
mov dword [0x66b6b4], edx
push 0x46b2c4
mov eax, dword [0x66b6ac]
push eax
call fcn.0040a328
test eax, eax
setne byte [0x66b6b8]
cmp byte [0x66b6b8], 0
je 0x46a130
call fcn.00469e34
call sub.KERNEL32.DLL_GetVersion_1
cmp al, 6
jb 0x46a153
push 0x46b304
push 0x46b31c
call sub.KERNEL32.DLL_LoadLibraryA
push eax
call fcn.0040a328
mov dword [0x66b6c8], eax
mov eax, dword [0x67cb00]
mov dword [eax], fcn.00469504
mov eax, dword [0x67cd94]
mov dword [eax], 0x43f4dc
mov eax, dword [0x67d644]
mov dword [eax], 0x43faf4
mov eax, 0x469670
mov edx, dword [0x67d20c]
mov dword [edx], eax
push 0x46b32c
push 0x46b344
call sub.KERNEL32.DLL_GetModuleHandleW_2
push eax
call fcn.0040a328
mov dword [0x66b6d4], eax
push 0x46b360
push 0x46b37c
call sub.KERNEL32.DLL_GetModuleHandleW_2
push eax
call fcn.0040a328
mov dword [0x66b6d8], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x66b6ac]
call fcn.00444178
mov edx, dword [ebp - 0xd4]
mov eax, 0x66bef0
call fcn.0040909c
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46a233
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46a233
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x46a233
mov eax, dword [0x66b6ac]
call fcn.0046977c
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x66b6ac]
je 0x46a233
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0046977c
call fcn.00469d44
push 0x681d68
call sub.KERNEL32.DLL_InitializeCriticalSection
push 0x681d50
call sub.KERNEL32.DLL_InitializeCriticalSection
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46b237
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.004367e8
lea eax, [ebp - 0xdc]
push eax
call sub.KERNEL32.DLL_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040e108
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46b39c
call fcn.004062b4
mov eax, dword [ebp - 0xd8]
call fcn.0040652c
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 0x46a369
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.KERNEL32.DLL_MapViewOfFile
mov dword [0x66b6d0], eax
mov eax, dword [0x66b6d0]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.0040a048
mov edx, dword [0x66b6d0]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.0040a048
mov edx, dword [0x66b6d0]
mov dword [edx + 4], eax
mov eax, dword [0x66b6d0]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x66b6d0]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00435534
cmp dword [ebp - 4], 0
je 0x46a35b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x66b58c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x46b3c0
xor edx, edx
call fcn.004371b8
jmp 0x46a3b3
mov eax, dword [0x67d6c0]
mov eax, dword [eax]
mov dword [0x66b58c], eax
jmp 0x46a3b3
test ebx, ebx
je 0x46a399
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.KERNEL32.DLL_MapViewOfFile
mov dword [0x66b6d0], eax
push ebx
call sub.KERNEL32.DLL_CloseHandle_1
mov eax, dword [0x66b6d0]
add eax, 0xc
push eax
call sub.KERNEL32.DLL_InterlockedIncrement
jmp 0x46a3b3
push 0
push 0x46b3d8
push 0x46b3e4
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.KERNEL32.DLL_ExitProcess_1
cmp dword [0x66b6d0], 0
jne 0x46a3d6
push 0
push 0x46b3d8
push 0x46b40c
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.KERNEL32.DLL_ExitProcess_1
cmp dword [0x66b58c], 0
jne 0x46a450
push 0xffffffffffffffff
mov eax, dword [0x66b6d0]
mov eax, dword [eax + 4]
push eax
call sub.KERNEL32.DLL_WaitForSingleObject
xor edx, edx
push ebp
push 0x46a434
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x66b6d0]
mov eax, dword [eax + 8]
test eax, eax
je 0x46a418
mov edx, dword [eax]
mov dword [0x66b58c], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x46a409
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46a43b
mov eax, dword [0x66b6d0]
mov eax, dword [eax + 4]
push eax
call sub.KERNEL32.DLL_ReleaseMutex
ret
push 0
call sub.KERNEL32.DLL_GetModuleHandleW_2
cmp eax, dword [0x66b6ac]
je 0x46a46c
cmp byte [0x66b6b8], 0
jne 0x46a46c
xor ebx, ebx
jmp 0x46a46e
mov bl, 1
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46b22e
mov eax, 0x66b638
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b63c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b640
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b644
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b648
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b64c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b650
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b654
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b658
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b65c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b660
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b664
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b670
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b674
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b678
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b67c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b680
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b684
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b688
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b68c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b690
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b694
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b698
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b69c
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b6a0
mov edx, dword [0x66b6ac]
call fcn.0046968c
mov eax, 0x66b6a8
mov edx, dword [0x66b6ac]
call fcn.0046968c
cmp dword [0x66b680], 0
je 0x46a64b
cmp dword [0x66b638], 0
je 0x46a64b
cmp dword [0x66b640], 0
je 0x46a64b
cmp dword [0x66b648], 0
jne 0x46aa07
test bl, bl
je 0x46aa07
mov esi, fcn.004091c0
cmp word [esi], 0x25ff
jne 0x46a688
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x67cde8]
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 [0x66b6ac]
jne 0x46a688
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x46b448
mov ecx, 0x78
mov edx, 0x46b490
mov eax, dword [ebp - 0x50]
call fcn.004699ec
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x46a6c0
push 0x46b4a0
mov ecx, 0x78
mov edx, 0x46b4c0
mov eax, esi
call fcn.004699ec
mov dword [ebp - 0x50], eax
push 0x46b4d0
mov ecx, 0x78
mov edx, 0x46b518
xor eax, eax
call fcn.004699ec
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x66b680], 0
jne 0x46a970
cmp dword [ebp - 0x50], 0
je 0x46a970
push 0x46b520
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b650], eax
cmp dword [0x66b650], 0
je 0x46a967
mov eax, dword [0x66b650]
cmp byte [eax], 0xe9
je 0x46a967
push 0x46b580
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b654], eax
push 0x46b5dc
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b658], eax
push 0x46b620
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b65c], eax
push 0x46b6ac
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b660], eax
push 0x46b6fc
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b664], eax
push 0x46b73c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b668], eax
push 0x46b778
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b66c], eax
push 0x46b7b4
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
mov dword [0x66b670], eax
push 0x46b7f4
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a328
lea edx, [ebp - 0x8c]
call fcn.00420b68
mov byte [ebp - 0x49], 1
jmp 0x46a94d
cmp dword [ebp - 0x84], 0
je 0x46a928
cmp byte [ebp - 0x85], 0
je 0x46a928
cmp dword [ebp - 0x78], 4
jne 0x46a928
cmp byte [ebp - 0x49], 0
je 0x46a89d
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00420b68
jmp 0x46a880
cmp word [ebp - 0xae], 0xc7
jne 0x46a858
cmp byte [ebp - 0xac], 0x40
jne 0x46a858
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x46a858
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x66b688], eax
jmp 0x46a928
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00420b68
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 0x46a928
cmp word [ebp - 0xae], 0xc3
jne 0x46a821
jmp 0x46a928
mov eax, dword [ebp - 0x84]
mov dword [0x66b680], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x66b680]
call fcn.00420b68
jmp 0x46a912
cmp dword [ebp - 0x84], 0
je 0x46a8ed
cmp word [ebp - 0x8a], 0xe8
jne 0x46a8ed
cmp byte [ebp - 0x85], 0
je 0x46a8ed
cmp dword [ebp - 0x78], 4
jne 0x46a8ed
mov eax, dword [ebp - 0x84]
mov dword [0x66b684], eax
jmp 0x46a970
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46a970
cmp word [ebp - 0x8a], 0xc3
jne 0x46a8ba
jmp 0x46a970
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46a970
cmp word [ebp - 0x8a], 0xc3
jne 0x46a7dc
jmp 0x46a970
xor ebx, ebx
xor eax, eax
mov dword [0x66b650], eax
test bl, bl
je 0x46aa07
cmp dword [0x66b638], 0
jne 0x46a9a5
test esi, esi
je 0x46a9a5
push 0x46b87c
push esi
call fcn.0040a328
mov dword [0x66b638], eax
push 0x46b8f0
push esi
call fcn.0040a328
mov dword [0x66b63c], eax
cmp dword [0x66b640], 0
jne 0x46a9d2
test edi, edi
je 0x46a9d2
push 0x46b968
push edi
call fcn.0040a328
mov dword [0x66b640], eax
push 0x46b9dc
push edi
call fcn.0040a328
mov dword [0x66b644], eax
cmp dword [0x66b648], 0
jne 0x46aa07
cmp dword [ebp - 0x54], 0
je 0x46aa07
push 0x46ba54
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040a328
mov dword [0x66b648], eax
push 0x46bad0
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040a328
mov dword [0x66b64c], eax
mov eax, dword [0x67ce60]
mov dword [0x66c024], eax
cmp dword [0x66b688], 0
je 0x46aa29
mov edx, 0x467378
mov eax, dword [0x66b688]
call fcn.0045f75c
cmp dword [0x66b638], 0
je 0x46aa41
mov edx, 0x46699c
mov eax, dword [0x66b638]
call fcn.0045f75c
cmp dword [0x66b63c], 0
je 0x46aa59
mov edx, 0x466974
mov eax, dword [0x66b63c]
call fcn.0045f75c
cmp dword [0x66b640], 0
je 0x46aa71
mov edx, 0x46699c
mov eax, dword [0x66b640]
call fcn.0045f75c
cmp dword [0x66b644], 0
je 0x46aa89
mov edx, 0x466974
mov eax, dword [0x66b644]
call fcn.0045f75c
cmp dword [0x66b648], 0
je 0x46aaa1
mov edx, 0x46699c
mov eax, dword [0x66b648]
call fcn.0045f75c
cmp dword [0x66b64c], 0
je 0x46aab9
mov edx, 0x466974
mov eax, dword [0x66b64c]
call fcn.0045f75c
cmp dword [0x66b650], 0
je 0x46aad1
mov edx, 0x466948
mov eax, dword [0x66b650]
call fcn.0045f75c
cmp dword [0x66b674], 0
je 0x46aae9
mov edx, 0x4669e0
mov eax, dword [0x66b674]
call fcn.0045f75c
cmp dword [0x66b678], 0
je 0x46ab01
mov edx, 0x466a08
mov eax, dword [0x66b678]
call fcn.0045f75c
cmp dword [0x66b67c], 0
je 0x46ab2b
mov byte [0x66b620], 1
mov eax, 0x18
call fcn.00403230
mov dword [0x66c038], eax
mov eax, dword [0x66c038]
push eax
call sub.KERNEL32.DLL_InitializeCriticalSection
cmp dword [0x66b654], 0
je 0x46ac03
cmp dword [0x66b658], 0
je 0x46ac03
lea edx, [ebp - 0x48]
mov eax, dword [0x66b654]
call fcn.00421e68
mov eax, dword [ebp - 0x28]
call fcn.004085c0
dec eax
jne 0x46ab68
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x66b654], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x66b658]
call fcn.00421e68
mov eax, dword [ebp - 0x28]
call fcn.004085c0
dec eax
jne 0x46ab8b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x66b658], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x66b654]
call fcn.00420b68
jmp 0x46abf1
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46abd0
cmp esi, dword [0x66b658]
jne 0x46abd0
cmp dword [ebp - 0x78], 4
jne 0x46ac03
cmp byte [ebp - 0x85], 0
je 0x46ac03
mov edx, 0x466bf8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ac03
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46ab9d
cmp dword [0x66b670], 0
je 0x46ac99
mov esi, fcn.00403324
cmp word [esi], 0x25ff
jne 0x46ac23
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x66b670]
call fcn.00420b68
jmp 0x46ac87
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x46ac64
cmp esi, edi
jne 0x46ac64
cmp dword [ebp - 0x78], 4
jne 0x46ac99
cmp byte [ebp - 0x85], 0
je 0x46ac99
mov edx, 0x466ab8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ac99
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46ac35
call fcn.004696a8
lea edx, [ebp - 0x8c]
call fcn.00420b68
mov byte [ebp - 0x49], 0
jmp 0x46ad04
cmp byte [ebp - 0x85], 0
je 0x46ace3
cmp dword [ebp - 0x78], 4
jne 0x46ace3
cmp dword [ebp - 0x84], 0
je 0x46ace3
cmp byte [ebp - 0x49], 0
je 0x46acdf
mov edx, 0x466b14
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ad16
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46acaf
call fcn.004696a8
lea edx, [ebp - 0x8c]
call fcn.00420b68
jmp 0x46ad7c
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46ad5b
cmp esi, dword [0x66b684]
jne 0x46ad5b
cmp dword [ebp - 0x78], 4
jne 0x46ad8e
cmp byte [ebp - 0x85], 0
je 0x46ad8e
mov edx, 0x466cdc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ad8e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46ad28
mov esi, dword [0x66b680]
test esi, esi
je 0x46ae12
cmp dword [0x66b684], 0
je 0x46ae12
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420b68
jmp 0x46ae00
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x66b684]
jne 0x46addf
cmp dword [ebp - 0x78], 4
jne 0x46ae12
cmp byte [ebp - 0x85], 0
je 0x46ae12
mov edx, 0x466ce4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ae12
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46adb0
mov esi, dword [0x66b684]
test esi, esi
je 0x46ae8d
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420b68
jmp 0x46ae7b
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x66b684]
jne 0x46ae5a
cmp dword [ebp - 0x78], 4
jne 0x46ae8d
cmp byte [ebp - 0x85], 0
je 0x46ae8d
mov edx, 0x466cf4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46ae8d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46ae2b
call fcn.004696e4
lea edx, [ebp - 0x8c]
call fcn.00420b68
jmp 0x46aec0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46af01
cmp word [ebp - 0x8a], 0x8b
jne 0x46aeef
cmp byte [ebp - 0x88], 0x15
jne 0x46aeef
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x67ce60]
cmp eax, edx
je 0x46af01
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46ae9f
cmp word [ebp - 0x8a], 0x8b
jne 0x46af1c
mov edx, 0x66c028
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f7b4
call fcn.004696f8
lea edx, [ebp - 0x8c]
call fcn.00420b68
jmp 0x46af4f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46af90
cmp word [ebp - 0x8a], 0xff
jne 0x46af7e
cmp byte [ebp - 0x88], 0x15
jne 0x46af7e
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x67ce60]
cmp eax, edx
je 0x46af90
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46af2e
cmp word [ebp - 0x8a], 0xff
jne 0x46afab
mov edx, 0x66c02c
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f7b4
mov eax, dword [0x67d3f8]
mov eax, dword [eax]
mov dword [0x66c030], eax
call fcn.0046970c
lea edx, [ebp - 0x8c]
call fcn.00420b68
jmp 0x46afea
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46b019
cmp word [ebp - 0x8a], 0xff
jne 0x46b007
cmp byte [ebp - 0x88], 0x25
je 0x46b019
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46afc9
cmp word [ebp - 0x8a], 0xff
jne 0x46b034
mov edx, 0x66c034
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045f7b4
call fcn.004696d0
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420b68
jmp 0x46b06d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46b07f
cmp byte [ebp - 0x87], 0
je 0x46b04a
mov eax, dword [ebp - 0x84]
mov dword [0x66b708], eax
mov edx, 0x4673dc
mov eax, esi
call fcn.0045f75c
lea edx, [ebp - 0x8c]
mov eax, fcn.004047c4
call fcn.00420b68
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46b0b4
mov esi, eax
jmp 0x46b0b9
mov esi, fcn.004047c4
call fcn.00469694
lea edx, [ebp - 0x8c]
call fcn.00420b68
jmp 0x46b117
cmp esi, dword [ebp - 0x84]
jne 0x46b0f4
cmp dword [ebp - 0x78], 4
jne 0x46b129
cmp byte [ebp - 0x85], 0
je 0x46b129
mov edx, 0x4676b8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045f7b4
jmp 0x46b129
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420b68
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 0x46b0cb
call fcn.004696bc
mov edx, 0x4676c8
call fcn.0045f75c
cmp dword [0x66b65c], 0
je 0x46b18b
cmp dword [0x66b664], 0
je 0x46b18b
mov edx, 0x465c5c
mov eax, dword [0x66b65c]
call fcn.0045f75c
mov edx, 0x40b714
mov eax, dword [0x66b664]
call fcn.0045f75c
cmp dword [0x66b660], 0
je 0x46b180
mov edx, 0x465cb8
mov eax, dword [0x66b660]
call fcn.0045f75c
mov eax, dword [0x67d2a4]
mov dword [eax], 0x465be4
push 0
push 0
call sub.KERNEL32.DLL_GetCurrentProcess
push eax
call sub.KERNEL32.DLL_FlushInstructionCache
call fcn.0045d920
call fcn.0043eaa4
mov esi, fcn.00405df4
cmp word [esi], 0x25ff
jne 0x46b1b7
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x66c044], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00421e68
cmp byte [ebp - 0x48], 0
je 0x46b1d8
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x66c048], eax
push 0
call sub.KERNEL32.DLL_GetModuleHandleW_2
cmp eax, dword [0x66b6ac]
je 0x46b1f0
cmp byte [0x66b6b8], 0
je 0x46b1fa
mov eax, dword [0x66bef0]
call fcn.00468288
mov eax, ebx
call fcn.004390f4
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x46b229
mov eax, dword [0x66bef0]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x66bf34], eax
call fcn.0043f138
call fcn.0045dabc
mov eax, 0x4665f8
test eax, eax
jmp 0x46b267
lea eax, [ebp - 4]
call fcn.00435534
cmp dword [ebp - 4], 0
je 0x46b251
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x66b58c], eax
jmp 0x46b25d
mov eax, dword [0x67d6c0]
mov eax, dword [eax]
mov dword [0x66b58c], eax
mov eax, 0x66bef0
call fcn.00409084
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b2bb
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00405e94
lea eax, [ebp - 0xd4]
call fcn.00409084
lea eax, [ebp - 0x48]
mov edx, dword [0x41ca60]
call fcn.004079c4
lea eax, [ebp - 8]
call fcn.00405e70
lea eax, [ebp - 4]
mov edx, dword [0x40b57c]
call fcn.004088a8
ret