Function at 0x46ab80
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 [0x41d370]
call fcn.00407b60
xor eax, eax
push ebp
push 0x46bdc0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40b904]
call fcn.00408a84
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter_1
test eax, eax
je 0x46ac15
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x46ac15
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.004082a8
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.004082a8
mov dword [0x7016b0], eax
mov dword [0x7016b4], edx
push 0x46bdd0
mov eax, dword [0x7016ac]
push eax
call fcn.0040a5cc
test eax, eax
setne byte [0x7016b8]
cmp byte [0x7016b8], 0
je 0x46ac3c
call fcn.0046a940
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x46ac5f
push 0x46be10
push 0x46be28
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.0040a5cc
mov dword [0x7016c8], eax
mov eax, dword [0x72174c]
mov dword [eax], fcn.0046a010
mov eax, dword [0x7219f8]
mov dword [eax], 0x4400d4
mov eax, dword [0x722428]
mov dword [eax], 0x4406ec
mov eax, 0x46a17c
mov edx, dword [0x721f1c]
mov dword [edx], eax
push 0x46be38
push 0x46be50
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040a5cc
mov dword [0x7016d4], eax
push 0x46be6c
push 0x46be88
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040a5cc
mov dword [0x7016d8], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x7016ac]
call fcn.00444d70
mov edx, dword [ebp - 0xd4]
mov eax, 0x701ef0
call fcn.004092ac
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46ad3f
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46ad3f
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x46ad3f
mov eax, dword [0x7016ac]
call fcn.0046a288
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x7016ac]
je 0x46ad3f
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0046a288
call fcn.0046a850
push 0x726da4
call sub.kernel32.dll_InitializeCriticalSection
push 0x726d8c
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46bd43
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.004373e0
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040e4bc
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46bea8
call fcn.00406058
mov eax, dword [ebp - 0xd8]
call fcn.00406358
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 0x46ae75
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x7016d0], eax
mov eax, dword [0x7016d0]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.0040a2a4
mov edx, dword [0x7016d0]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.0040a2a4
mov edx, dword [0x7016d0]
mov dword [edx + 4], eax
mov eax, dword [0x7016d0]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x7016d0]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0043612c
cmp dword [ebp - 4], 0
je 0x46ae67
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x70158c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x46becc
xor edx, edx
call fcn.00437db0
jmp 0x46aebf
mov eax, dword [0x7224bc]
mov eax, dword [eax]
mov dword [0x70158c], eax
jmp 0x46aebf
test ebx, ebx
je 0x46aea5
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x7016d0], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x7016d0]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x46aebf
push 0
push 0x46bee4
push 0x46bef0
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x7016d0], 0
jne 0x46aee2
push 0
push 0x46bee4
push 0x46bf18
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x70158c], 0
jne 0x46af5c
push 0xffffffffffffffff
mov eax, dword [0x7016d0]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x46af40
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x7016d0]
mov eax, dword [eax + 8]
test eax, eax
je 0x46af24
mov edx, dword [eax]
mov dword [0x70158c], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x46af15
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46af47
mov eax, dword [0x7016d0]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x7016ac]
je 0x46af78
cmp byte [0x7016b8], 0
jne 0x46af78
xor ebx, ebx
jmp 0x46af7a
mov bl, 1
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46bd3a
mov eax, 0x701638
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70163c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701640
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701644
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701648
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70164c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701650
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701654
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701658
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70165c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701660
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701664
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701670
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701674
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701678
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70167c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701680
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701684
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701688
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70168c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701690
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701694
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x701698
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x70169c
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x7016a0
mov edx, dword [0x7016ac]
call fcn.0046a198
mov eax, 0x7016a8
mov edx, dword [0x7016ac]
call fcn.0046a198
cmp dword [0x701680], 0
je 0x46b157
cmp dword [0x701638], 0
je 0x46b157
cmp dword [0x701640], 0
je 0x46b157
cmp dword [0x701648], 0
jne 0x46b513
test bl, bl
je 0x46b513
mov esi, fcn.004093d0
cmp word [esi], 0x25ff
jne 0x46b194
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x721a48]
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 [0x7016ac]
jne 0x46b194
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x46bf54
mov ecx, 0x78
mov edx, 0x46bf9c
mov eax, dword [ebp - 0x50]
call fcn.0046a4f8
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x46b1cc
push 0x46bfac
mov ecx, 0x78
mov edx, 0x46bfcc
mov eax, esi
call fcn.0046a4f8
mov dword [ebp - 0x50], eax
push 0x46bfdc
mov ecx, 0x78
mov edx, 0x46c024
xor eax, eax
call fcn.0046a4f8
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x701680], 0
jne 0x46b47c
cmp dword [ebp - 0x50], 0
je 0x46b47c
push 0x46c02c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701650], eax
cmp dword [0x701650], 0
je 0x46b473
mov eax, dword [0x701650]
cmp byte [eax], 0xe9
je 0x46b473
push 0x46c08c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701654], eax
push 0x46c0e8
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701658], eax
push 0x46c12c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x70165c], eax
push 0x46c1b8
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701660], eax
push 0x46c208
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701664], eax
push 0x46c248
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701668], eax
push 0x46c284
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x70166c], eax
push 0x46c2c0
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
mov dword [0x701670], eax
push 0x46c300
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040a5cc
lea edx, [ebp - 0x8c]
call fcn.00421478
mov byte [ebp - 0x49], 1
jmp 0x46b459
cmp dword [ebp - 0x84], 0
je 0x46b434
cmp byte [ebp - 0x85], 0
je 0x46b434
cmp dword [ebp - 0x78], 4
jne 0x46b434
cmp byte [ebp - 0x49], 0
je 0x46b3a9
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00421478
jmp 0x46b38c
cmp word [ebp - 0xae], 0xc7
jne 0x46b364
cmp byte [ebp - 0xac], 0x40
jne 0x46b364
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x46b364
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x701688], eax
jmp 0x46b434
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00421478
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 0x46b434
cmp word [ebp - 0xae], 0xc3
jne 0x46b32d
jmp 0x46b434
mov eax, dword [ebp - 0x84]
mov dword [0x701680], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x701680]
call fcn.00421478
jmp 0x46b41e
cmp dword [ebp - 0x84], 0
je 0x46b3f9
cmp word [ebp - 0x8a], 0xe8
jne 0x46b3f9
cmp byte [ebp - 0x85], 0
je 0x46b3f9
cmp dword [ebp - 0x78], 4
jne 0x46b3f9
mov eax, dword [ebp - 0x84]
mov dword [0x701684], eax
jmp 0x46b47c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b47c
cmp word [ebp - 0x8a], 0xc3
jne 0x46b3c6
jmp 0x46b47c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b47c
cmp word [ebp - 0x8a], 0xc3
jne 0x46b2e8
jmp 0x46b47c
xor ebx, ebx
xor eax, eax
mov dword [0x701650], eax
test bl, bl
je 0x46b513
cmp dword [0x701638], 0
jne 0x46b4b1
test esi, esi
je 0x46b4b1
push 0x46c388
push esi
call fcn.0040a5cc
mov dword [0x701638], eax
push 0x46c3fc
push esi
call fcn.0040a5cc
mov dword [0x70163c], eax
cmp dword [0x701640], 0
jne 0x46b4de
test edi, edi
je 0x46b4de
push 0x46c474
push edi
call fcn.0040a5cc
mov dword [0x701640], eax
push 0x46c4e8
push edi
call fcn.0040a5cc
mov dword [0x701644], eax
cmp dword [0x701648], 0
jne 0x46b513
cmp dword [ebp - 0x54], 0
je 0x46b513
push 0x46c560
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040a5cc
mov dword [0x701648], eax
push 0x46c5dc
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040a5cc
mov dword [0x70164c], eax
mov eax, dword [0x721acc]
mov dword [0x702024], eax
cmp dword [0x701688], 0
je 0x46b535
mov edx, 0x467e30
mov eax, dword [0x701688]
call fcn.00460214
cmp dword [0x701638], 0
je 0x46b54d
mov edx, 0x467454
mov eax, dword [0x701638]
call fcn.00460214
cmp dword [0x70163c], 0
je 0x46b565
mov edx, 0x46742c
mov eax, dword [0x70163c]
call fcn.00460214
cmp dword [0x701640], 0
je 0x46b57d
mov edx, 0x467454
mov eax, dword [0x701640]
call fcn.00460214
cmp dword [0x701644], 0
je 0x46b595
mov edx, 0x46742c
mov eax, dword [0x701644]
call fcn.00460214
cmp dword [0x701648], 0
je 0x46b5ad
mov edx, 0x467454
mov eax, dword [0x701648]
call fcn.00460214
cmp dword [0x70164c], 0
je 0x46b5c5
mov edx, 0x46742c
mov eax, dword [0x70164c]
call fcn.00460214
cmp dword [0x701650], 0
je 0x46b5dd
mov edx, 0x467400
mov eax, dword [0x701650]
call fcn.00460214
cmp dword [0x701674], 0
je 0x46b5f5
mov edx, 0x467498
mov eax, dword [0x701674]
call fcn.00460214
cmp dword [0x701678], 0
je 0x46b60d
mov edx, 0x4674c0
mov eax, dword [0x701678]
call fcn.00460214
cmp dword [0x70167c], 0
je 0x46b637
mov byte [0x701620], 1
mov eax, 0x18
call fcn.004030fc
mov dword [0x702038], eax
mov eax, dword [0x702038]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x701654], 0
je 0x46b70f
cmp dword [0x701658], 0
je 0x46b70f
lea edx, [ebp - 0x48]
mov eax, dword [0x701654]
call fcn.00422778
mov eax, dword [ebp - 0x28]
call fcn.0040879c
dec eax
jne 0x46b674
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x701654], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x701658]
call fcn.00422778
mov eax, dword [ebp - 0x28]
call fcn.0040879c
dec eax
jne 0x46b697
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x701658], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x701654]
call fcn.00421478
jmp 0x46b6fd
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46b6dc
cmp esi, dword [0x701658]
jne 0x46b6dc
cmp dword [ebp - 0x78], 4
jne 0x46b70f
cmp byte [ebp - 0x85], 0
je 0x46b70f
mov edx, 0x4676b0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b70f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b6a9
cmp dword [0x701670], 0
je 0x46b7a5
mov esi, fcn.004031f0
cmp word [esi], 0x25ff
jne 0x46b72f
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x701670]
call fcn.00421478
jmp 0x46b793
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x46b770
cmp esi, edi
jne 0x46b770
cmp dword [ebp - 0x78], 4
jne 0x46b7a5
cmp byte [ebp - 0x85], 0
je 0x46b7a5
mov edx, 0x467570
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b7a5
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b741
call fcn.0046a1b4
lea edx, [ebp - 0x8c]
call fcn.00421478
mov byte [ebp - 0x49], 0
jmp 0x46b810
cmp byte [ebp - 0x85], 0
je 0x46b7ef
cmp dword [ebp - 0x78], 4
jne 0x46b7ef
cmp dword [ebp - 0x84], 0
je 0x46b7ef
cmp byte [ebp - 0x49], 0
je 0x46b7eb
mov edx, 0x4675cc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b822
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b7bb
call fcn.0046a1b4
lea edx, [ebp - 0x8c]
call fcn.00421478
jmp 0x46b888
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46b867
cmp esi, dword [0x701684]
jne 0x46b867
cmp dword [ebp - 0x78], 4
jne 0x46b89a
cmp byte [ebp - 0x85], 0
je 0x46b89a
mov edx, 0x467794
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b89a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b834
mov esi, dword [0x701680]
test esi, esi
je 0x46b91e
cmp dword [0x701684], 0
je 0x46b91e
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421478
jmp 0x46b90c
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x701684]
jne 0x46b8eb
cmp dword [ebp - 0x78], 4
jne 0x46b91e
cmp byte [ebp - 0x85], 0
je 0x46b91e
mov edx, 0x46779c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b91e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b8bc
mov esi, dword [0x701684]
test esi, esi
je 0x46b999
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421478
jmp 0x46b987
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x701684]
jne 0x46b966
cmp dword [ebp - 0x78], 4
jne 0x46b999
cmp byte [ebp - 0x85], 0
je 0x46b999
mov edx, 0x4677ac
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46b999
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46b937
call fcn.0046a1f0
lea edx, [ebp - 0x8c]
call fcn.00421478
jmp 0x46b9cc
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46ba0d
cmp word [ebp - 0x8a], 0x8b
jne 0x46b9fb
cmp byte [ebp - 0x88], 0x15
jne 0x46b9fb
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x721acc]
cmp eax, edx
je 0x46ba0d
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46b9ab
cmp word [ebp - 0x8a], 0x8b
jne 0x46ba28
mov edx, 0x702028
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0046026c
call fcn.0046a204
lea edx, [ebp - 0x8c]
call fcn.00421478
jmp 0x46ba5b
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46ba9c
cmp word [ebp - 0x8a], 0xff
jne 0x46ba8a
cmp byte [ebp - 0x88], 0x15
jne 0x46ba8a
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x721acc]
cmp eax, edx
je 0x46ba9c
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46ba3a
cmp word [ebp - 0x8a], 0xff
jne 0x46bab7
mov edx, 0x70202c
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0046026c
mov eax, dword [0x72218c]
mov eax, dword [eax]
mov dword [0x702030], eax
call fcn.0046a218
lea edx, [ebp - 0x8c]
call fcn.00421478
jmp 0x46baf6
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46bb25
cmp word [ebp - 0x8a], 0xff
jne 0x46bb13
cmp byte [ebp - 0x88], 0x25
je 0x46bb25
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46bad5
cmp word [ebp - 0x8a], 0xff
jne 0x46bb40
mov edx, 0x702034
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0046026c
call fcn.0046a1dc
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421478
jmp 0x46bb79
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46bb8b
cmp byte [ebp - 0x87], 0
je 0x46bb56
mov eax, dword [ebp - 0x84]
mov dword [0x701708], eax
mov edx, 0x467e94
mov eax, esi
call fcn.00460214
lea edx, [ebp - 0x8c]
mov eax, fcn.004044bc
call fcn.00421478
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46bbc0
mov esi, eax
jmp 0x46bbc5
mov esi, fcn.004044bc
call fcn.0046a1a0
lea edx, [ebp - 0x8c]
call fcn.00421478
jmp 0x46bc23
cmp esi, dword [ebp - 0x84]
jne 0x46bc00
cmp dword [ebp - 0x78], 4
jne 0x46bc35
cmp byte [ebp - 0x85], 0
je 0x46bc35
mov edx, 0x468170
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0046026c
jmp 0x46bc35
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421478
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 0x46bbd7
call fcn.0046a1c8
mov edx, 0x468180
call fcn.00460214
cmp dword [0x70165c], 0
je 0x46bc97
cmp dword [0x701664], 0
je 0x46bc97
mov edx, 0x466714
mov eax, dword [0x70165c]
call fcn.00460214
mov edx, 0x40bac8
mov eax, dword [0x701664]
call fcn.00460214
cmp dword [0x701660], 0
je 0x46bc8c
mov edx, 0x466770
mov eax, dword [0x701660]
call fcn.00460214
mov eax, dword [0x721fe4]
mov dword [eax], 0x46669c
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045e518
call fcn.0043f69c
mov esi, fcn.00405b1c
cmp word [esi], 0x25ff
jne 0x46bcc3
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x702044], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00422778
cmp byte [ebp - 0x48], 0
je 0x46bce4
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x702048], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x7016ac]
je 0x46bcfc
cmp byte [0x7016b8], 0
je 0x46bd06
mov eax, dword [0x701ef0]
call fcn.00468d40
mov eax, ebx
call fcn.00439cec
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x46bd35
mov eax, dword [0x701ef0]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x701f34], eax
call fcn.0043fd30
call fcn.0045e6b4
mov eax, 0x4670b0
test eax, eax
jmp 0x46bd73
lea eax, [ebp - 4]
call fcn.0043612c
cmp dword [ebp - 4], 0
je 0x46bd5d
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x70158c], eax
jmp 0x46bd69
mov eax, dword [0x7224bc]
mov eax, dword [eax]
mov dword [0x70158c], eax
mov eax, 0x701ef0
call fcn.00409294
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46bdc7
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00405bbc
lea eax, [ebp - 0xd4]
call fcn.00409294
lea eax, [ebp - 0x48]
mov edx, dword [0x41d370]
call fcn.00407c38
lea eax, [ebp - 8]
call fcn.00405b98
lea eax, [ebp - 4]
mov edx, dword [0x40b904]
call fcn.00408a84
ret