Function at 0x4a590950
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 [0x4a517e94]
call fcn.4a508938
xor eax, eax
push ebp
push 0x4a591bd5
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x4a50e3c0]
call fcn.4a50959c
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4a5909e5
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4a5909e5
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.4a508e64
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.4a508e64
mov dword [0x4a5e8520], eax
mov dword [0x4a5e8524], edx
push 0x4a591be4
mov eax, dword [0x4a5e851c]
push eax
call fcn.4a50d92c
test eax, eax
setne byte [0x4a5e8528]
cmp byte [0x4a5e8528], 0
je 0x4a590a0c
call fcn.4a59073c
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x4a590a2f
push 0x4a591c24
push 0x4a591c3c
call sub.kernel32.dll_LoadLibraryA_1
push eax
call fcn.4a50d92c
mov dword [0x4a5e852c], eax
mov eax, dword [0x4a5ed330]
mov dword [eax], fcn.4a58fe24
mov eax, dword [0x4a5ed3bc]
mov dword [eax], 0x4a562e14
mov eax, dword [0x4a5ed61c]
mov dword [eax], 0x4a563424
mov eax, 0x4a58ff90
mov edx, dword [0x4a5ed4e8]
mov dword [edx], eax
push 0x4a591c4c
push 0x4a591c64
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a50d92c
mov dword [0x4a5e8538], eax
push 0x4a591c80
push 0x4a591c9c
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a50d92c
mov dword [0x4a5e853c], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x4a5e851c]
call fcn.4a567a5c
mov edx, dword [ebp - 0xd4]
mov eax, 0x4a5e8d5c
call fcn.4a50ab0c
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a590b0f
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a590b0f
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4a590b0f
mov eax, dword [0x4a5e851c]
call fcn.4a5900a0
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x4a5e851c]
je 0x4a590b0f
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.4a5900a0
call fcn.4a59064c
push 0x4a5f416c
call sub.kernel32.dll_InitializeCriticalSection_1
push 0x4a5f4154
call sub.kernel32.dll_InitializeCriticalSection_1
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a591b58
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.4a553164
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.4a510ea4
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x4a591cbc
call fcn.4a507dac
mov eax, dword [ebp - 0xd8]
call fcn.4a507f78
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_2
test eax, eax
jne 0x4a590c45
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4a5e8534], eax
mov eax, dword [0x4a5e8534]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.4a50d698
mov edx, dword [0x4a5e8534]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.4a50d698
mov edx, dword [0x4a5e8534]
mov dword [edx + 4], eax
mov eax, dword [0x4a5e8534]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x4a5e8534]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.4a551ed4
cmp dword [ebp - 4], 0
je 0x4a590c37
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4a5e8420], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x4a591ce0
xor edx, edx
call fcn.4a553adc
jmp 0x4a590c8f
mov eax, dword [0x4a5ed644]
mov eax, dword [eax]
mov dword [0x4a5e8420], eax
jmp 0x4a590c8f
test ebx, ebx
je 0x4a590c75
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4a5e8534], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4a5e8534]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x4a590c8f
push 0
push 0x4a591cf8
push 0x4a591d04
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x4a5e8534], 0
jne 0x4a590cb2
push 0
push 0x4a591cf8
push 0x4a591d2c
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x4a5e8420], 0
jne 0x4a590d2c
push 0xffffffffffffffff
mov eax, dword [0x4a5e8534]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4a590d10
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x4a5e8534]
mov eax, dword [eax + 8]
test eax, eax
je 0x4a590cf4
mov edx, dword [eax]
mov dword [0x4a5e8420], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a590ce5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a590d17
mov eax, dword [0x4a5e8534]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a5e851c]
je 0x4a590d48
cmp byte [0x4a5e8528], 0
jne 0x4a590d48
xor ebx, ebx
jmp 0x4a590d4a
mov bl, 1
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a591b4f
mov eax, 0x4a5e84a8
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84ac
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84b0
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84b4
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84b8
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84bc
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84c0
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84c4
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84c8
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84cc
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84d0
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84d4
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84e0
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84e4
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84e8
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84ec
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84f0
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84f4
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84f8
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e84fc
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e8500
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e8504
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e8508
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e850c
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e8510
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
mov eax, 0x4a5e8518
mov edx, dword [0x4a5e851c]
call fcn.4a58ffac
cmp dword [0x4a5e84f0], 0
je 0x4a590f27
cmp dword [0x4a5e84a8], 0
je 0x4a590f27
cmp dword [0x4a5e84b0], 0
je 0x4a590f27
cmp dword [0x4a5e84b8], 0
jne 0x4a591316
test bl, bl
je 0x4a591316
mov esi, 0x4a50ac38
movzx eax, word [esi]
cmp ax, 0x25ff
jne 0x4a590f68
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x4a5ed3d0]
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 [0x4a5e851c]
jne 0x4a590f8a
xor eax, eax
mov dword [ebp - 0x50], eax
jmp 0x4a590f8a
cmp ax, 0x8b55
jne 0x4a590f8a
push 0x4a591d68
mov ecx, 0x28
mov edx, 0x4a591d88
mov eax, dword [0x4a5e851c]
call fcn.4a590310
mov dword [ebp - 0x50], eax
mov esi, 0x122
push 0x4a591d98
mov ecx, esi
mov edx, 0x4a591de4
mov eax, dword [ebp - 0x50]
call fcn.4a590310
mov edi, eax
cmp dword [ebp - 0x50], 0
jne 0x4a590fc1
push 0x4a591df4
mov ecx, esi
mov edx, 0x4a591d88
mov eax, edi
call fcn.4a590310
mov dword [ebp - 0x50], eax
push 0x4a591e18
mov ecx, esi
mov edx, 0x4a591e60
xor eax, eax
call fcn.4a590310
mov dword [ebp - 0x54], eax
push 0x4a591e74
mov ecx, esi
mov edx, 0x4a591ec0
xor eax, eax
call fcn.4a590310
mov esi, eax
cmp dword [0x4a5e84f0], 0
jne 0x4a59127f
cmp dword [ebp - 0x50], 0
je 0x4a59127f
push 0x4a591ec4
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84c0], eax
cmp dword [0x4a5e84c0], 0
je 0x4a591276
mov eax, dword [0x4a5e84c0]
cmp byte [eax], 0xe9
je 0x4a591276
push 0x4a591f30
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84c4], eax
push 0x4a591fa0
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84c8], eax
push 0x4a591ff4
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84cc], eax
push 0x4a592088
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84d0], eax
push 0x4a5920e4
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84d4], eax
push 0x4a592130
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84d8], eax
push 0x4a592178
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84dc], eax
push 0x4a5921c0
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84e0], eax
push 0x4a59220c
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a50d92c
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
mov byte [ebp - 0x49], 1
jmp 0x4a59125c
cmp dword [ebp - 0x84], 0
je 0x4a591237
cmp byte [ebp - 0x85], 0
je 0x4a591237
cmp dword [ebp - 0x78], 4
jne 0x4a591237
cmp byte [ebp - 0x49], 0
je 0x4a5911ac
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.4a51c0b0
jmp 0x4a59118f
cmp word [ebp - 0xae], 0xc7
jne 0x4a591167
cmp byte [ebp - 0xac], 0x40
jne 0x4a591167
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x4a591167
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x4a5e84f8], eax
jmp 0x4a591237
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.4a51c0b0
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 0x4a591237
cmp word [ebp - 0xae], 0xc3
jne 0x4a591130
jmp 0x4a591237
mov eax, dword [ebp - 0x84]
mov dword [0x4a5e84f0], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a5e84f0]
call fcn.4a51c0b0
jmp 0x4a591221
cmp dword [ebp - 0x84], 0
je 0x4a5911fc
cmp word [ebp - 0x8a], 0xe8
jne 0x4a5911fc
cmp byte [ebp - 0x85], 0
je 0x4a5911fc
cmp dword [ebp - 0x78], 4
jne 0x4a5911fc
mov eax, dword [ebp - 0x84]
mov dword [0x4a5e84f4], eax
jmp 0x4a59127f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a59127f
cmp word [ebp - 0x8a], 0xc3
jne 0x4a5911c9
jmp 0x4a59127f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a59127f
cmp word [ebp - 0x8a], 0xc3
jne 0x4a5910eb
jmp 0x4a59127f
xor ebx, ebx
xor eax, eax
mov dword [0x4a5e84c0], eax
test bl, bl
je 0x4a591316
cmp dword [0x4a5e84a8], 0
jne 0x4a5912b4
test edi, edi
je 0x4a5912b4
push 0x4a592294
push edi
call fcn.4a50d92c
mov dword [0x4a5e84a8], eax
push 0x4a592310
push edi
call fcn.4a50d92c
mov dword [0x4a5e84ac], eax
cmp dword [0x4a5e84b0], 0
jne 0x4a5912e9
cmp dword [ebp - 0x54], 0
je 0x4a5912e9
push 0x4a59239c
mov eax, dword [ebp - 0x54]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84b0], eax
push 0x4a592410
mov eax, dword [ebp - 0x54]
push eax
call fcn.4a50d92c
mov dword [0x4a5e84b4], eax
cmp dword [0x4a5e84b8], 0
jne 0x4a591316
test esi, esi
je 0x4a591316
push 0x4a592488
push esi
call fcn.4a50d92c
mov dword [0x4a5e84b8], eax
push 0x4a592504
push esi
call fcn.4a50d92c
mov dword [0x4a5e84bc], eax
mov eax, dword [0x4a5ed3ec]
mov dword [0x4a5e8e98], eax
cmp dword [0x4a5e84f8], 0
je 0x4a591338
mov edx, 0x4a58dc58
mov eax, dword [0x4a5e84f8]
call fcn.4a585f7c
cmp dword [0x4a5e84a8], 0
je 0x4a591350
mov edx, 0x4a58d27c
mov eax, dword [0x4a5e84a8]
call fcn.4a585f7c
cmp dword [0x4a5e84ac], 0
je 0x4a591368
mov edx, 0x4a58d254
mov eax, dword [0x4a5e84ac]
call fcn.4a585f7c
cmp dword [0x4a5e84b0], 0
je 0x4a591380
mov edx, 0x4a58d27c
mov eax, dword [0x4a5e84b0]
call fcn.4a585f7c
cmp dword [0x4a5e84b4], 0
je 0x4a591398
mov edx, 0x4a58d254
mov eax, dword [0x4a5e84b4]
call fcn.4a585f7c
cmp dword [0x4a5e84b8], 0
je 0x4a5913b0
mov edx, 0x4a58d27c
mov eax, dword [0x4a5e84b8]
call fcn.4a585f7c
cmp dword [0x4a5e84bc], 0
je 0x4a5913c8
mov edx, 0x4a58d254
mov eax, dword [0x4a5e84bc]
call fcn.4a585f7c
cmp dword [0x4a5e84c0], 0
je 0x4a5913e0
mov edx, 0x4a58d228
mov eax, dword [0x4a5e84c0]
call fcn.4a585f7c
cmp dword [0x4a5e84e4], 0
je 0x4a5913f8
mov edx, 0x4a58d2c0
mov eax, dword [0x4a5e84e4]
call fcn.4a585f7c
cmp dword [0x4a5e84e8], 0
je 0x4a591410
mov edx, 0x4a58d2e8
mov eax, dword [0x4a5e84e8]
call fcn.4a585f7c
cmp dword [0x4a5e84ec], 0
je 0x4a59143a
mov byte [0x4a5e8498], 1
mov eax, 0x18
call fcn.4a5048c0
mov dword [0x4a5e8eac], eax
mov eax, dword [0x4a5e8eac]
push eax
call sub.kernel32.dll_InitializeCriticalSection_1
cmp dword [0x4a5e84c4], 0
je 0x4a591512
cmp dword [0x4a5e84c8], 0
je 0x4a591512
lea edx, [ebp - 0x48]
mov eax, dword [0x4a5e84c4]
call fcn.4a51d3ec
mov eax, dword [ebp - 0x28]
call fcn.4a509254
dec eax
jne 0x4a591477
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4a5e84c4], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x4a5e84c8]
call fcn.4a51d3ec
mov eax, dword [ebp - 0x28]
call fcn.4a509254
dec eax
jne 0x4a59149a
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4a5e84c8], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a5e84c4]
call fcn.4a51c0b0
jmp 0x4a591500
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a5914df
cmp esi, dword [0x4a5e84c8]
jne 0x4a5914df
cmp dword [ebp - 0x78], 4
jne 0x4a591512
cmp byte [ebp - 0x85], 0
je 0x4a591512
mov edx, 0x4a58d4d8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a591512
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a5914ac
cmp dword [0x4a5e84e0], 0
je 0x4a5915a8
mov esi, fcn.4a504994
cmp word [esi], 0x25ff
jne 0x4a591532
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a5e84e0]
call fcn.4a51c0b0
jmp 0x4a591596
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x4a591573
cmp esi, edi
jne 0x4a591573
cmp dword [ebp - 0x78], 4
jne 0x4a5915a8
cmp byte [ebp - 0x85], 0
je 0x4a5915a8
mov edx, 0x4a58d398
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a5915a8
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a591544
call fcn.4a58ffcc
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
mov byte [ebp - 0x49], 0
jmp 0x4a591613
cmp byte [ebp - 0x85], 0
je 0x4a5915f2
cmp dword [ebp - 0x78], 4
jne 0x4a5915f2
cmp dword [ebp - 0x84], 0
je 0x4a5915f2
cmp byte [ebp - 0x49], 0
je 0x4a5915ee
mov edx, 0x4a58d3f4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a591625
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a5915be
call fcn.4a58ffcc
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
jmp 0x4a59168b
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a59166a
cmp esi, dword [0x4a5e84f4]
jne 0x4a59166a
cmp dword [ebp - 0x78], 4
jne 0x4a59169d
cmp byte [ebp - 0x85], 0
je 0x4a59169d
mov edx, 0x4a58d5bc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a59169d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a591637
mov esi, dword [0x4a5e84f0]
test esi, esi
je 0x4a591721
cmp dword [0x4a5e84f4], 0
je 0x4a591721
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a51c0b0
jmp 0x4a59170f
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4a5e84f4]
jne 0x4a5916ee
cmp dword [ebp - 0x78], 4
jne 0x4a591721
cmp byte [ebp - 0x85], 0
je 0x4a591721
mov edx, 0x4a58d5c4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a591721
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a5916bf
mov esi, dword [0x4a5e84f4]
test esi, esi
je 0x4a59179c
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a51c0b0
jmp 0x4a59178a
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4a5e84f4]
jne 0x4a591769
cmp dword [ebp - 0x78], 4
jne 0x4a59179c
cmp byte [ebp - 0x85], 0
je 0x4a59179c
mov edx, 0x4a58d5d4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a59179c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a59173a
call fcn.4a590008
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
jmp 0x4a5917cf
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a591810
cmp word [ebp - 0x8a], 0x8b
jne 0x4a5917fe
cmp byte [ebp - 0x88], 0x15
jne 0x4a5917fe
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x4a5ed3ec]
cmp eax, edx
je 0x4a591810
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a5917ae
cmp word [ebp - 0x8a], 0x8b
jne 0x4a59182b
mov edx, 0x4a5e8e9c
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a585fd4
call fcn.4a59001c
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
jmp 0x4a59185e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a59189f
cmp word [ebp - 0x8a], 0xff
jne 0x4a59188d
cmp byte [ebp - 0x88], 0x15
jne 0x4a59188d
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x4a5ed3ec]
cmp eax, edx
je 0x4a59189f
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a59183d
cmp word [ebp - 0x8a], 0xff
jne 0x4a5918ba
mov edx, 0x4a5e8ea0
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a585fd4
mov eax, dword [0x4a5ed580]
mov eax, dword [eax]
mov dword [0x4a5e8ea4], eax
call fcn.4a590030
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
jmp 0x4a5918f9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a591928
cmp word [ebp - 0x8a], 0xff
jne 0x4a591916
cmp byte [ebp - 0x88], 0x25
je 0x4a591928
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a5918d8
cmp word [ebp - 0x8a], 0xff
jne 0x4a591943
mov edx, 0x4a5e8ea8
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a585fd4
call fcn.4a58fff4
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a51c0b0
jmp 0x4a59197c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a59198e
cmp byte [ebp - 0x87], 0
je 0x4a591959
mov eax, dword [ebp - 0x84]
mov dword [0x4a5e8570], eax
mov edx, 0x4a58dcbc
mov eax, esi
call fcn.4a585f7c
lea edx, [ebp - 0x8c]
mov eax, fcn.4a505b78
call fcn.4a51c0b0
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4a5919c3
mov esi, eax
jmp 0x4a5919c8
mov esi, fcn.4a505b78
call fcn.4a58ffb8
lea edx, [ebp - 0x8c]
call fcn.4a51c0b0
jmp 0x4a591a26
cmp esi, dword [ebp - 0x84]
jne 0x4a591a03
cmp dword [ebp - 0x78], 4
jne 0x4a591a38
cmp byte [ebp - 0x85], 0
je 0x4a591a38
mov edx, 0x4a58df98
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a585fd4
jmp 0x4a591a38
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a51c0b0
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 0x4a5919da
call fcn.4a58ffe0
mov edx, 0x4a58dfa8
call fcn.4a585f7c
cmp dword [0x4a5e84cc], 0
je 0x4a591a9a
cmp dword [0x4a5e84d4], 0
je 0x4a591a9a
mov edx, 0x4a58c4d4
mov eax, dword [0x4a5e84cc]
call fcn.4a585f7c
mov edx, 0x4a50e7d4
mov eax, dword [0x4a5e84d4]
call fcn.4a585f7c
cmp dword [0x4a5e84d0], 0
je 0x4a591a8f
mov edx, 0x4a58c530
mov eax, dword [0x4a5e84d0]
call fcn.4a585f7c
mov eax, dword [0x4a5ed524]
mov dword [eax], 0x4a58c45c
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.4a584220
call fcn.4a562404
mov esi, 0x4a5074f4
cmp word [esi], 0x25ff
jne 0x4a591ac6
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x4a5e8eb8], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.4a51d3ec
cmp byte [ebp - 0x48], 0
je 0x4a591ae7
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x4a5e8ebc], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a5e851c]
je 0x4a591aff
cmp byte [0x4a5e8528], 0
je 0x4a591b09
mov eax, dword [0x4a5e8d5c]
call fcn.4a58eb78
mov eax, ebx
call fcn.4a555a04
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4a591b4a
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x4a5e851c]
jne 0x4a591b4a
mov eax, dword [0x4a5e8d5c]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x4a5e8da0], eax
call fcn.4a562a98
call fcn.4a584440
mov eax, 0x4a58cee4
test eax, eax
jmp 0x4a591b88
lea eax, [ebp - 4]
call fcn.4a551ed4
cmp dword [ebp - 4], 0
je 0x4a591b72
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4a5e8420], eax
jmp 0x4a591b7e
mov eax, dword [0x4a5ed644]
mov eax, dword [eax]
mov dword [0x4a5e8420], eax
mov eax, 0x4a5e8d5c
call fcn.4a50aaf4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a591bdc
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.4a5076a8
lea eax, [ebp - 0xd4]
call fcn.4a50aaf4
lea eax, [ebp - 0x48]
mov edx, dword [0x4a517e94]
call fcn.4a508a10
lea eax, [ebp - 8]
call fcn.4a50763c
lea eax, [ebp - 4]
mov edx, dword [0x4a50e3c0]
call fcn.4a50959c
ret