Function at 0x4a8834
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 [0x41dd64]
call fcn.0040b40c
xor eax, eax
push ebp
push 0x4a9a81
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x4143a4]
call fcn.0040c198
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4a88c9
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4a88c9
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.0040ba68
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.0040ba68
mov dword [0x70f790], eax
mov dword [0x70f794], edx
push 0x4a9a90
mov eax, dword [0x70f788]
push eax
call fcn.00412e30
test eax, eax
setne byte [0x70f798]
cmp byte [0x70f798], 0
je 0x4a88f0
call fcn.004a85f4
call sub.kernel32.dll_GetVersion
cmp al, 6
jb 0x4a8913
push 0x4a9ad0
push 0x4a9ae8
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00412e30
mov dword [0x70f79c], eax
mov eax, dword [0x717e40]
mov dword [eax], fcn.004a7ce0
mov eax, dword [0x71801c]
mov dword [eax], 0x47aa1c
mov eax, dword [0x71862c]
mov dword [eax], 0x47b02c
mov eax, 0x4a7e4c
mov edx, dword [0x71831c]
mov dword [edx], eax
push 0x4a9af8
push 0x4a9b10
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00412e30
mov dword [0x70f7a8], eax
push 0x4a9b2c
push 0x4a9b48
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00412e30
mov dword [0x70f7ac], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x70f788]
call fcn.0047f670
mov edx, dword [ebp - 0xd4]
mov eax, 0x70ffc4
call fcn.0040d728
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a89f3
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a89f3
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4a89f3
mov eax, dword [0x70f788]
call fcn.004a7f58
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x70f788]
je 0x4a89f3
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.004a7f58
call fcn.004a8504
push 0x71f220
call sub.kernel32.dll_InitializeCriticalSection
push 0x71f208
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a9a04
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.0046add8
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.00416b44
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x4a9b68
call fcn.0040a4e4
mov eax, dword [ebp - 0xd8]
call fcn.0040a6b0
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
test eax, eax
jne 0x4a8b29
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x70f7a4], eax
mov eax, dword [0x70f7a4]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00412b34
mov edx, dword [0x70f7a4]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00412b34
mov edx, dword [0x70f7a4]
mov dword [edx + 4], eax
mov eax, dword [0x70f7a4]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x70f7a4]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00469b48
cmp dword [ebp - 4], 0
je 0x4a8b1b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x70f690], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x4a9b8c
xor edx, edx
call fcn.0046b754
jmp 0x4a8b73
mov eax, dword [0x718688]
mov eax, dword [eax]
mov dword [0x70f690], eax
jmp 0x4a8b73
test ebx, ebx
je 0x4a8b59
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x70f7a4], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x70f7a4]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x4a8b73
push 0
push 0x4a9ba4
push 0x4a9bb0
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x70f7a4], 0
jne 0x4a8b96
push 0
push 0x4a9ba4
push 0x4a9bd8
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x70f690], 0
jne 0x4a8c10
push 0xffffffffffffffff
mov eax, dword [0x70f7a4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4a8bf4
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x70f7a4]
mov eax, dword [eax + 8]
test eax, eax
je 0x4a8bd8
mov edx, dword [eax]
mov dword [0x70f690], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a8bc9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a8bfb
mov eax, dword [0x70f7a4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x70f788]
je 0x4a8c2c
cmp byte [0x70f798], 0
jne 0x4a8c2c
xor ebx, ebx
jmp 0x4a8c2e
mov bl, 1
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a99fb
mov eax, 0x70f714
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f718
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f71c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f720
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f724
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f728
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f72c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f730
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f734
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f738
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f73c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f740
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f74c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f750
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f754
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f758
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f75c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f760
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f764
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f768
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f76c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f770
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f774
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f778
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f77c
mov edx, dword [0x70f788]
call fcn.004a7e68
mov eax, 0x70f784
mov edx, dword [0x70f788]
call fcn.004a7e68
cmp dword [0x70f75c], 0
je 0x4a8e0b
cmp dword [0x70f714], 0
je 0x4a8e0b
cmp dword [0x70f71c], 0
je 0x4a8e0b
cmp dword [0x70f724], 0
jne 0x4a91d4
test bl, bl
je 0x4a91d4
mov esi, fcn.0040d834
cmp word [esi], 0x25ff
jne 0x4a8e48
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x718050]
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 [0x70f788]
jne 0x4a8e48
xor eax, eax
mov dword [ebp - 0x50], eax
mov esi, 0xf0
push 0x4a9c14
mov ecx, esi
mov edx, 0x4a9c60
mov eax, dword [ebp - 0x50]
call fcn.004a81c8
mov edi, eax
cmp dword [ebp - 0x50], 0
jne 0x4a8e7f
push 0x4a9c70
mov ecx, esi
mov edx, 0x4a9c94
mov eax, edi
call fcn.004a81c8
mov dword [ebp - 0x50], eax
push 0x4a9ca4
mov ecx, esi
mov edx, 0x4a9cec
xor eax, eax
call fcn.004a81c8
mov dword [ebp - 0x54], eax
push 0x4a9d00
mov ecx, esi
mov edx, 0x4a9d4c
xor eax, eax
call fcn.004a81c8
mov esi, eax
cmp dword [0x70f75c], 0
jne 0x4a913d
cmp dword [ebp - 0x50], 0
je 0x4a913d
push 0x4a9d50
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f72c], eax
cmp dword [0x70f72c], 0
je 0x4a9134
mov eax, dword [0x70f72c]
cmp byte [eax], 0xe9
je 0x4a9134
push 0x4a9dbc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f730], eax
push 0x4a9e2c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f734], eax
push 0x4a9e80
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f738], eax
push 0x4a9f14
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f73c], eax
push 0x4a9f70
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f740], eax
push 0x4a9fbc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f744], eax
push 0x4aa004
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f748], eax
push 0x4aa04c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
mov dword [0x70f74c], eax
push 0x4aa098
mov eax, dword [ebp - 0x50]
push eax
call fcn.00412e30
lea edx, [ebp - 0x8c]
call fcn.00421f78
mov byte [ebp - 0x49], 1
jmp 0x4a911a
cmp dword [ebp - 0x84], 0
je 0x4a90f5
cmp byte [ebp - 0x85], 0
je 0x4a90f5
cmp dword [ebp - 0x78], 4
jne 0x4a90f5
cmp byte [ebp - 0x49], 0
je 0x4a906a
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00421f78
jmp 0x4a904d
cmp word [ebp - 0xae], 0xc7
jne 0x4a9025
cmp byte [ebp - 0xac], 0x40
jne 0x4a9025
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x4a9025
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x70f764], eax
jmp 0x4a90f5
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00421f78
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 0x4a90f5
cmp word [ebp - 0xae], 0xc3
jne 0x4a8fee
jmp 0x4a90f5
mov eax, dword [ebp - 0x84]
mov dword [0x70f75c], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x70f75c]
call fcn.00421f78
jmp 0x4a90df
cmp dword [ebp - 0x84], 0
je 0x4a90ba
cmp word [ebp - 0x8a], 0xe8
jne 0x4a90ba
cmp byte [ebp - 0x85], 0
je 0x4a90ba
cmp dword [ebp - 0x78], 4
jne 0x4a90ba
mov eax, dword [ebp - 0x84]
mov dword [0x70f760], eax
jmp 0x4a913d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a913d
cmp word [ebp - 0x8a], 0xc3
jne 0x4a9087
jmp 0x4a913d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a913d
cmp word [ebp - 0x8a], 0xc3
jne 0x4a8fa9
jmp 0x4a913d
xor ebx, ebx
xor eax, eax
mov dword [0x70f72c], eax
test bl, bl
je 0x4a91d4
cmp dword [0x70f714], 0
jne 0x4a9172
test edi, edi
je 0x4a9172
push 0x4aa120
push edi
call fcn.00412e30
mov dword [0x70f714], eax
push 0x4aa19c
push edi
call fcn.00412e30
mov dword [0x70f718], eax
cmp dword [0x70f71c], 0
jne 0x4a91a7
cmp dword [ebp - 0x54], 0
je 0x4a91a7
push 0x4aa228
mov eax, dword [ebp - 0x54]
push eax
call fcn.00412e30
mov dword [0x70f71c], eax
push 0x4aa29c
mov eax, dword [ebp - 0x54]
push eax
call fcn.00412e30
mov dword [0x70f720], eax
cmp dword [0x70f724], 0
jne 0x4a91d4
test esi, esi
je 0x4a91d4
push 0x4aa314
push esi
call fcn.00412e30
mov dword [0x70f724], eax
push 0x4aa390
push esi
call fcn.00412e30
mov dword [0x70f728], eax
mov eax, dword [0x71808c]
mov dword [0x7100f8], eax
cmp dword [0x70f764], 0
je 0x4a91f6
mov edx, 0x4a5b14
mov eax, dword [0x70f764]
call fcn.0049de58
cmp dword [0x70f714], 0
je 0x4a920e
mov edx, 0x4a5138
mov eax, dword [0x70f714]
call fcn.0049de58
cmp dword [0x70f718], 0
je 0x4a9226
mov edx, 0x4a5110
mov eax, dword [0x70f718]
call fcn.0049de58
cmp dword [0x70f71c], 0
je 0x4a923e
mov edx, 0x4a5138
mov eax, dword [0x70f71c]
call fcn.0049de58
cmp dword [0x70f720], 0
je 0x4a9256
mov edx, 0x4a5110
mov eax, dword [0x70f720]
call fcn.0049de58
cmp dword [0x70f724], 0
je 0x4a926e
mov edx, 0x4a5138
mov eax, dword [0x70f724]
call fcn.0049de58
cmp dword [0x70f728], 0
je 0x4a9286
mov edx, 0x4a5110
mov eax, dword [0x70f728]
call fcn.0049de58
cmp dword [0x70f72c], 0
je 0x4a929e
mov edx, 0x4a50e4
mov eax, dword [0x70f72c]
call fcn.0049de58
cmp dword [0x70f750], 0
je 0x4a92b6
mov edx, 0x4a517c
mov eax, dword [0x70f750]
call fcn.0049de58
cmp dword [0x70f754], 0
je 0x4a92ce
mov edx, 0x4a51a4
mov eax, dword [0x70f754]
call fcn.0049de58
cmp dword [0x70f758], 0
je 0x4a92f8
mov byte [0x70f704], 1
mov eax, 0x18
call fcn.0040647c
mov dword [0x71010c], eax
mov eax, dword [0x71010c]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x70f730], 0
je 0x4a93d0
cmp dword [0x70f734], 0
je 0x4a93d0
lea edx, [ebp - 0x48]
mov eax, dword [0x70f730]
call fcn.00423264
mov eax, dword [ebp - 0x28]
call fcn.0040be58
dec eax
jne 0x4a9335
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x70f730], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x70f734]
call fcn.00423264
mov eax, dword [ebp - 0x28]
call fcn.0040be58
dec eax
jne 0x4a9358
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x70f734], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x70f730]
call fcn.00421f78
jmp 0x4a93be
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a939d
cmp esi, dword [0x70f734]
jne 0x4a939d
cmp dword [ebp - 0x78], 4
jne 0x4a93d0
cmp byte [ebp - 0x85], 0
je 0x4a93d0
mov edx, 0x4a5394
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a93d0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a936a
cmp dword [0x70f74c], 0
je 0x4a9466
mov esi, fcn.00406570
cmp word [esi], 0x25ff
jne 0x4a93f0
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x70f74c]
call fcn.00421f78
jmp 0x4a9454
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x4a9431
cmp esi, edi
jne 0x4a9431
cmp dword [ebp - 0x78], 4
jne 0x4a9466
cmp byte [ebp - 0x85], 0
je 0x4a9466
mov edx, 0x4a5254
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a9466
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a9402
call fcn.004a7e84
lea edx, [ebp - 0x8c]
call fcn.00421f78
mov byte [ebp - 0x49], 0
jmp 0x4a94d1
cmp byte [ebp - 0x85], 0
je 0x4a94b0
cmp dword [ebp - 0x78], 4
jne 0x4a94b0
cmp dword [ebp - 0x84], 0
je 0x4a94b0
cmp byte [ebp - 0x49], 0
je 0x4a94ac
mov edx, 0x4a52b0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a94e3
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a947c
call fcn.004a7e84
lea edx, [ebp - 0x8c]
call fcn.00421f78
jmp 0x4a9549
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a9528
cmp esi, dword [0x70f760]
jne 0x4a9528
cmp dword [ebp - 0x78], 4
jne 0x4a955b
cmp byte [ebp - 0x85], 0
je 0x4a955b
mov edx, 0x4a5478
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a955b
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a94f5
mov esi, dword [0x70f75c]
test esi, esi
je 0x4a95df
cmp dword [0x70f760], 0
je 0x4a95df
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421f78
jmp 0x4a95cd
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x70f760]
jne 0x4a95ac
cmp dword [ebp - 0x78], 4
jne 0x4a95df
cmp byte [ebp - 0x85], 0
je 0x4a95df
mov edx, 0x4a5480
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a95df
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a957d
mov esi, dword [0x70f760]
test esi, esi
je 0x4a965a
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421f78
jmp 0x4a9648
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x70f760]
jne 0x4a9627
cmp dword [ebp - 0x78], 4
jne 0x4a965a
cmp byte [ebp - 0x85], 0
je 0x4a965a
mov edx, 0x4a5490
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a965a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a95f8
call fcn.004a7ec0
lea edx, [ebp - 0x8c]
call fcn.00421f78
jmp 0x4a968d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a96ce
cmp word [ebp - 0x8a], 0x8b
jne 0x4a96bc
cmp byte [ebp - 0x88], 0x15
jne 0x4a96bc
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x71808c]
cmp eax, edx
je 0x4a96ce
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a966c
cmp word [ebp - 0x8a], 0x8b
jne 0x4a96e9
mov edx, 0x7100fc
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0049deb0
call fcn.004a7ed4
lea edx, [ebp - 0x8c]
call fcn.00421f78
jmp 0x4a971c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a975d
cmp word [ebp - 0x8a], 0xff
jne 0x4a974b
cmp byte [ebp - 0x88], 0x15
jne 0x4a974b
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x71808c]
cmp eax, edx
je 0x4a975d
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a96fb
cmp word [ebp - 0x8a], 0xff
jne 0x4a9778
mov edx, 0x710100
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0049deb0
mov eax, dword [0x718490]
mov eax, dword [eax]
mov dword [0x710104], eax
call fcn.004a7ee8
lea edx, [ebp - 0x8c]
call fcn.00421f78
jmp 0x4a97b7
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a97e6
cmp word [ebp - 0x8a], 0xff
jne 0x4a97d4
cmp byte [ebp - 0x88], 0x25
je 0x4a97e6
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a9796
cmp word [ebp - 0x8a], 0xff
jne 0x4a9801
mov edx, 0x710108
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0049deb0
call fcn.004a7eac
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00421f78
jmp 0x4a983a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a984c
cmp byte [ebp - 0x87], 0
je 0x4a9817
mov eax, dword [ebp - 0x84]
mov dword [0x70f7d8], eax
mov edx, 0x4a5b78
mov eax, esi
call fcn.0049de58
lea edx, [ebp - 0x8c]
mov eax, fcn.00407f1c
call fcn.00421f78
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4a9881
mov esi, eax
jmp 0x4a9886
mov esi, fcn.00407f1c
call fcn.004a7e70
lea edx, [ebp - 0x8c]
call fcn.00421f78
jmp 0x4a98e4
cmp esi, dword [ebp - 0x84]
jne 0x4a98c1
cmp dword [ebp - 0x78], 4
jne 0x4a98f6
cmp byte [ebp - 0x85], 0
je 0x4a98f6
mov edx, 0x4a5e54
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0049deb0
jmp 0x4a98f6
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00421f78
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 0x4a9898
call fcn.004a7e98
mov edx, 0x4a5e64
call fcn.0049de58
cmp dword [0x70f738], 0
je 0x4a9958
cmp dword [0x70f740], 0
je 0x4a9958
mov edx, 0x4a4390
mov eax, dword [0x70f738]
call fcn.0049de58
mov edx, 0x4147b8
mov eax, dword [0x70f740]
call fcn.0049de58
cmp dword [0x70f73c], 0
je 0x4a994d
mov edx, 0x4a43ec
mov eax, dword [0x70f73c]
call fcn.0049de58
mov eax, dword [0x7183a8]
mov dword [eax], 0x4a4318
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0049c160
call fcn.0047a00c
mov esi, fcn.00409b20
cmp word [esi], 0x25ff
jne 0x4a9984
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x710118], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00423264
cmp byte [ebp - 0x48], 0
je 0x4a99a5
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x71011c], eax
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x70f788]
je 0x4a99bd
cmp byte [0x70f798], 0
je 0x4a99c7
mov eax, dword [0x70ffc4]
call fcn.004a6a34
mov eax, ebx
call fcn.0046d600
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4a99f6
mov eax, dword [0x70ffc4]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x710008], eax
call fcn.0047a6a0
call fcn.0049c2fc
mov eax, 0x4a4da0
test eax, eax
jmp 0x4a9a34
lea eax, [ebp - 4]
call fcn.00469b48
cmp dword [ebp - 4], 0
je 0x4a9a1e
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x70f690], eax
jmp 0x4a9a2a
mov eax, dword [0x718688]
mov eax, dword [eax]
mov dword [0x70f690], eax
mov eax, 0x70ffc4
call fcn.0040d710
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a9a88
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00409cf0
lea eax, [ebp - 0xd4]
call fcn.0040d710
lea eax, [ebp - 0x48]
mov edx, dword [0x41dd64]
call fcn.0040b4e4
lea eax, [ebp - 8]
call fcn.00409c84
lea eax, [ebp - 4]
mov edx, dword [0x4143a4]
call fcn.0040c198
ret