Function at 0x4a690944
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 [0x4a617d78]
call fcn.4a60888c
xor eax, eax
push ebp
push 0x4a691bc9
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x4a60e1c4]
call fcn.4a609274
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4a6909d9
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4a6909d9
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.4a608db8
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.4a608db8
mov dword [0x4a6cb520], eax
mov dword [0x4a6cb524], edx
push 0x4a691bd8
mov eax, dword [0x4a6cb51c]
push eax
call fcn.4a60d6e0
test eax, eax
setne byte [0x4a6cb528]
cmp byte [0x4a6cb528], 0
je 0x4a690a00
call fcn.4a690730
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x4a690a23
push 0x4a691c18
push 0x4a691c30
call sub.kernel32.dll_LoadLibraryA_1
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb52c], eax
mov eax, dword [0x4a6ce52c]
mov dword [eax], fcn.4a68fe18
mov eax, dword [0x4a6ce5c0]
mov dword [eax], 0x4a662c40
mov eax, dword [0x4a6ce820]
mov dword [eax], 0x4a663250
mov eax, 0x4a68ff84
mov edx, dword [0x4a6ce6e8]
mov dword [edx], eax
push 0x4a691c40
push 0x4a691c58
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb538], eax
push 0x4a691c74
push 0x4a691c90
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb53c], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x4a6cb51c]
call fcn.4a667888
mov edx, dword [ebp - 0xd4]
mov eax, 0x4a6cbd5c
call fcn.4a60a7e4
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a690b03
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a690b03
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4a690b03
mov eax, dword [0x4a6cb51c]
call fcn.4a690094
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x4a6cb51c]
je 0x4a690b03
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.4a690094
call fcn.4a690640
push 0x4a6d516c
call sub.kernel32.dll_InitializeCriticalSection_1
push 0x4a6d5154
call sub.kernel32.dll_InitializeCriticalSection_1
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4a691b4c
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.4a652f90
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.4a6109bc
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x4a691cb0
call fcn.4a607d1c
mov eax, dword [ebp - 0xd8]
call fcn.4a607ee8
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 0x4a690c39
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4a6cb534], eax
mov eax, dword [0x4a6cb534]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.4a60d43c
mov edx, dword [0x4a6cb534]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.4a60d43c
mov edx, dword [0x4a6cb534]
mov dword [edx + 4], eax
mov eax, dword [0x4a6cb534]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x4a6cb534]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.4a651d00
cmp dword [ebp - 4], 0
je 0x4a690c2b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4a6cb420], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x4a691cd4
xor edx, edx
call fcn.4a653908
jmp 0x4a690c83
mov eax, dword [0x4a6ce848]
mov eax, dword [eax]
mov dword [0x4a6cb420], eax
jmp 0x4a690c83
test ebx, ebx
je 0x4a690c69
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4a6cb534], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4a6cb534]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x4a690c83
push 0
push 0x4a691cec
push 0x4a691cf8
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x4a6cb534], 0
jne 0x4a690ca6
push 0
push 0x4a691cec
push 0x4a691d20
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x4a6cb420], 0
jne 0x4a690d20
push 0xffffffffffffffff
mov eax, dword [0x4a6cb534]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4a690d04
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x4a6cb534]
mov eax, dword [eax + 8]
test eax, eax
je 0x4a690ce8
mov edx, dword [eax]
mov dword [0x4a6cb420], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a690cd9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a690d0b
mov eax, dword [0x4a6cb534]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a6cb51c]
je 0x4a690d3c
cmp byte [0x4a6cb528], 0
jne 0x4a690d3c
xor ebx, ebx
jmp 0x4a690d3e
mov bl, 1
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4a691b43
mov eax, 0x4a6cb4a8
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4ac
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4b0
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4b4
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4b8
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4bc
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4c0
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4c4
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4c8
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4cc
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4d0
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4d4
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4e0
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4e4
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4e8
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4ec
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4f0
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4f4
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4f8
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb4fc
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb500
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb504
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb508
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb50c
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb510
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
mov eax, 0x4a6cb518
mov edx, dword [0x4a6cb51c]
call fcn.4a68ffa0
cmp dword [0x4a6cb4f0], 0
je 0x4a690f1b
cmp dword [0x4a6cb4a8], 0
je 0x4a690f1b
cmp dword [0x4a6cb4b0], 0
je 0x4a690f1b
cmp dword [0x4a6cb4b8], 0
jne 0x4a69130a
test bl, bl
je 0x4a69130a
mov esi, 0x4a60a910
movzx eax, word [esi]
cmp ax, 0x25ff
jne 0x4a690f5c
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x4a6ce5d4]
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 [0x4a6cb51c]
jne 0x4a690f7e
xor eax, eax
mov dword [ebp - 0x50], eax
jmp 0x4a690f7e
cmp ax, 0x8b55
jne 0x4a690f7e
push 0x4a691d5c
mov ecx, 0x28
mov edx, 0x4a691d7c
mov eax, dword [0x4a6cb51c]
call fcn.4a690304
mov dword [ebp - 0x50], eax
mov esi, 0x122
push 0x4a691d8c
mov ecx, esi
mov edx, 0x4a691dd8
mov eax, dword [ebp - 0x50]
call fcn.4a690304
mov edi, eax
cmp dword [ebp - 0x50], 0
jne 0x4a690fb5
push 0x4a691de8
mov ecx, esi
mov edx, 0x4a691d7c
mov eax, edi
call fcn.4a690304
mov dword [ebp - 0x50], eax
push 0x4a691e0c
mov ecx, esi
mov edx, 0x4a691e54
xor eax, eax
call fcn.4a690304
mov dword [ebp - 0x54], eax
push 0x4a691e68
mov ecx, esi
mov edx, 0x4a691eb4
xor eax, eax
call fcn.4a690304
mov esi, eax
cmp dword [0x4a6cb4f0], 0
jne 0x4a691273
cmp dword [ebp - 0x50], 0
je 0x4a691273
push 0x4a691eb8
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4c0], eax
cmp dword [0x4a6cb4c0], 0
je 0x4a69126a
mov eax, dword [0x4a6cb4c0]
cmp byte [eax], 0xe9
je 0x4a69126a
push 0x4a691f24
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4c4], eax
push 0x4a691f94
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4c8], eax
push 0x4a691fe8
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4cc], eax
push 0x4a69207c
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4d0], eax
push 0x4a6920d8
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4d4], eax
push 0x4a692124
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4d8], eax
push 0x4a69216c
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4dc], eax
push 0x4a6921b4
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4e0], eax
push 0x4a692200
mov eax, dword [ebp - 0x50]
push eax
call fcn.4a60d6e0
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
mov byte [ebp - 0x49], 1
jmp 0x4a691250
cmp dword [ebp - 0x84], 0
je 0x4a69122b
cmp byte [ebp - 0x85], 0
je 0x4a69122b
cmp dword [ebp - 0x78], 4
jne 0x4a69122b
cmp byte [ebp - 0x49], 0
je 0x4a6911a0
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.4a61bf94
jmp 0x4a691183
cmp word [ebp - 0xae], 0xc7
jne 0x4a69115b
cmp byte [ebp - 0xac], 0x40
jne 0x4a69115b
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x4a69115b
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x4a6cb4f8], eax
jmp 0x4a69122b
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.4a61bf94
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 0x4a69122b
cmp word [ebp - 0xae], 0xc3
jne 0x4a691124
jmp 0x4a69122b
mov eax, dword [ebp - 0x84]
mov dword [0x4a6cb4f0], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a6cb4f0]
call fcn.4a61bf94
jmp 0x4a691215
cmp dword [ebp - 0x84], 0
je 0x4a6911f0
cmp word [ebp - 0x8a], 0xe8
jne 0x4a6911f0
cmp byte [ebp - 0x85], 0
je 0x4a6911f0
cmp dword [ebp - 0x78], 4
jne 0x4a6911f0
mov eax, dword [ebp - 0x84]
mov dword [0x4a6cb4f4], eax
jmp 0x4a691273
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a691273
cmp word [ebp - 0x8a], 0xc3
jne 0x4a6911bd
jmp 0x4a691273
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a691273
cmp word [ebp - 0x8a], 0xc3
jne 0x4a6910df
jmp 0x4a691273
xor ebx, ebx
xor eax, eax
mov dword [0x4a6cb4c0], eax
test bl, bl
je 0x4a69130a
cmp dword [0x4a6cb4a8], 0
jne 0x4a6912a8
test edi, edi
je 0x4a6912a8
push 0x4a692288
push edi
call fcn.4a60d6e0
mov dword [0x4a6cb4a8], eax
push 0x4a692304
push edi
call fcn.4a60d6e0
mov dword [0x4a6cb4ac], eax
cmp dword [0x4a6cb4b0], 0
jne 0x4a6912dd
cmp dword [ebp - 0x54], 0
je 0x4a6912dd
push 0x4a692390
mov eax, dword [ebp - 0x54]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4b0], eax
push 0x4a692404
mov eax, dword [ebp - 0x54]
push eax
call fcn.4a60d6e0
mov dword [0x4a6cb4b4], eax
cmp dword [0x4a6cb4b8], 0
jne 0x4a69130a
test esi, esi
je 0x4a69130a
push 0x4a69247c
push esi
call fcn.4a60d6e0
mov dword [0x4a6cb4b8], eax
push 0x4a6924f8
push esi
call fcn.4a60d6e0
mov dword [0x4a6cb4bc], eax
mov eax, dword [0x4a6ce5ec]
mov dword [0x4a6cbe98], eax
cmp dword [0x4a6cb4f8], 0
je 0x4a69132c
mov edx, 0x4a68dc4c
mov eax, dword [0x4a6cb4f8]
call fcn.4a685f70
cmp dword [0x4a6cb4a8], 0
je 0x4a691344
mov edx, 0x4a68d270
mov eax, dword [0x4a6cb4a8]
call fcn.4a685f70
cmp dword [0x4a6cb4ac], 0
je 0x4a69135c
mov edx, 0x4a68d248
mov eax, dword [0x4a6cb4ac]
call fcn.4a685f70
cmp dword [0x4a6cb4b0], 0
je 0x4a691374
mov edx, 0x4a68d270
mov eax, dword [0x4a6cb4b0]
call fcn.4a685f70
cmp dword [0x4a6cb4b4], 0
je 0x4a69138c
mov edx, 0x4a68d248
mov eax, dword [0x4a6cb4b4]
call fcn.4a685f70
cmp dword [0x4a6cb4b8], 0
je 0x4a6913a4
mov edx, 0x4a68d270
mov eax, dword [0x4a6cb4b8]
call fcn.4a685f70
cmp dword [0x4a6cb4bc], 0
je 0x4a6913bc
mov edx, 0x4a68d248
mov eax, dword [0x4a6cb4bc]
call fcn.4a685f70
cmp dword [0x4a6cb4c0], 0
je 0x4a6913d4
mov edx, 0x4a68d21c
mov eax, dword [0x4a6cb4c0]
call fcn.4a685f70
cmp dword [0x4a6cb4e4], 0
je 0x4a6913ec
mov edx, 0x4a68d2b4
mov eax, dword [0x4a6cb4e4]
call fcn.4a685f70
cmp dword [0x4a6cb4e8], 0
je 0x4a691404
mov edx, 0x4a68d2dc
mov eax, dword [0x4a6cb4e8]
call fcn.4a685f70
cmp dword [0x4a6cb4ec], 0
je 0x4a69142e
mov byte [0x4a6cb498], 1
mov eax, 0x18
call fcn.4a604878
mov dword [0x4a6cbeac], eax
mov eax, dword [0x4a6cbeac]
push eax
call sub.kernel32.dll_InitializeCriticalSection_1
cmp dword [0x4a6cb4c4], 0
je 0x4a691506
cmp dword [0x4a6cb4c8], 0
je 0x4a691506
lea edx, [ebp - 0x48]
mov eax, dword [0x4a6cb4c4]
call fcn.4a61d2d0
mov eax, dword [ebp - 0x28]
call fcn.4a608f2c
dec eax
jne 0x4a69146b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4a6cb4c4], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x4a6cb4c8]
call fcn.4a61d2d0
mov eax, dword [ebp - 0x28]
call fcn.4a608f2c
dec eax
jne 0x4a69148e
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4a6cb4c8], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a6cb4c4]
call fcn.4a61bf94
jmp 0x4a6914f4
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a6914d3
cmp esi, dword [0x4a6cb4c8]
jne 0x4a6914d3
cmp dword [ebp - 0x78], 4
jne 0x4a691506
cmp byte [ebp - 0x85], 0
je 0x4a691506
mov edx, 0x4a68d4cc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691506
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a6914a0
cmp dword [0x4a6cb4e0], 0
je 0x4a69159c
mov esi, fcn.4a60494c
cmp word [esi], 0x25ff
jne 0x4a691526
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x4a6cb4e0]
call fcn.4a61bf94
jmp 0x4a69158a
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x4a691567
cmp esi, edi
jne 0x4a691567
cmp dword [ebp - 0x78], 4
jne 0x4a69159c
cmp byte [ebp - 0x85], 0
je 0x4a69159c
mov edx, 0x4a68d38c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a69159c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a691538
call fcn.4a68ffc0
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
mov byte [ebp - 0x49], 0
jmp 0x4a691607
cmp byte [ebp - 0x85], 0
je 0x4a6915e6
cmp dword [ebp - 0x78], 4
jne 0x4a6915e6
cmp dword [ebp - 0x84], 0
je 0x4a6915e6
cmp byte [ebp - 0x49], 0
je 0x4a6915e2
mov edx, 0x4a68d3e8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691619
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a6915b2
call fcn.4a68ffc0
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
jmp 0x4a69167f
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4a69165e
cmp esi, dword [0x4a6cb4f4]
jne 0x4a69165e
cmp dword [ebp - 0x78], 4
jne 0x4a691691
cmp byte [ebp - 0x85], 0
je 0x4a691691
mov edx, 0x4a68d5b0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691691
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a69162b
mov esi, dword [0x4a6cb4f0]
test esi, esi
je 0x4a691715
cmp dword [0x4a6cb4f4], 0
je 0x4a691715
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a61bf94
jmp 0x4a691703
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4a6cb4f4]
jne 0x4a6916e2
cmp dword [ebp - 0x78], 4
jne 0x4a691715
cmp byte [ebp - 0x85], 0
je 0x4a691715
mov edx, 0x4a68d5b8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691715
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a6916b3
mov esi, dword [0x4a6cb4f4]
test esi, esi
je 0x4a691790
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a61bf94
jmp 0x4a69177e
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4a6cb4f4]
jne 0x4a69175d
cmp dword [ebp - 0x78], 4
jne 0x4a691790
cmp byte [ebp - 0x85], 0
je 0x4a691790
mov edx, 0x4a68d5c8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691790
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a69172e
call fcn.4a68fffc
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
jmp 0x4a6917c3
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a691804
cmp word [ebp - 0x8a], 0x8b
jne 0x4a6917f2
cmp byte [ebp - 0x88], 0x15
jne 0x4a6917f2
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x4a6ce5ec]
cmp eax, edx
je 0x4a691804
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a6917a2
cmp word [ebp - 0x8a], 0x8b
jne 0x4a69181f
mov edx, 0x4a6cbe9c
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a685fc8
call fcn.4a690010
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
jmp 0x4a691852
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a691893
cmp word [ebp - 0x8a], 0xff
jne 0x4a691881
cmp byte [ebp - 0x88], 0x15
jne 0x4a691881
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x4a6ce5ec]
cmp eax, edx
je 0x4a691893
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a691831
cmp word [ebp - 0x8a], 0xff
jne 0x4a6918ae
mov edx, 0x4a6cbea0
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a685fc8
mov eax, dword [0x4a6ce78c]
mov eax, dword [eax]
mov dword [0x4a6cbea4], eax
call fcn.4a690024
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
jmp 0x4a6918ed
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4a69191c
cmp word [ebp - 0x8a], 0xff
jne 0x4a69190a
cmp byte [ebp - 0x88], 0x25
je 0x4a69191c
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4a6918cc
cmp word [ebp - 0x8a], 0xff
jne 0x4a691937
mov edx, 0x4a6cbea8
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.4a685fc8
call fcn.4a68ffe8
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.4a61bf94
jmp 0x4a691970
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a691982
cmp byte [ebp - 0x87], 0
je 0x4a69194d
mov eax, dword [ebp - 0x84]
mov dword [0x4a6cb570], eax
mov edx, 0x4a68dcb0
mov eax, esi
call fcn.4a685f70
lea edx, [ebp - 0x8c]
mov eax, fcn.4a605b24
call fcn.4a61bf94
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4a6919b7
mov esi, eax
jmp 0x4a6919bc
mov esi, fcn.4a605b24
call fcn.4a68ffac
lea edx, [ebp - 0x8c]
call fcn.4a61bf94
jmp 0x4a691a1a
cmp esi, dword [ebp - 0x84]
jne 0x4a6919f7
cmp dword [ebp - 0x78], 4
jne 0x4a691a2c
cmp byte [ebp - 0x85], 0
je 0x4a691a2c
mov edx, 0x4a68df8c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.4a685fc8
jmp 0x4a691a2c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.4a61bf94
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 0x4a6919ce
call fcn.4a68ffd4
mov edx, 0x4a68df9c
call fcn.4a685f70
cmp dword [0x4a6cb4cc], 0
je 0x4a691a8e
cmp dword [0x4a6cb4d4], 0
je 0x4a691a8e
mov edx, 0x4a68c4c8
mov eax, dword [0x4a6cb4cc]
call fcn.4a685f70
mov edx, 0x4a60e5d8
mov eax, dword [0x4a6cb4d4]
call fcn.4a685f70
cmp dword [0x4a6cb4d0], 0
je 0x4a691a83
mov edx, 0x4a68c524
mov eax, dword [0x4a6cb4d0]
call fcn.4a685f70
mov eax, dword [0x4a6ce724]
mov dword [eax], 0x4a68c450
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.4a68404c
call fcn.4a662230
mov esi, 0x4a607464
cmp word [esi], 0x25ff
jne 0x4a691aba
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x4a6cbeb8], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.4a61d2d0
cmp byte [ebp - 0x48], 0
je 0x4a691adb
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x4a6cbebc], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a6cb51c]
je 0x4a691af3
cmp byte [0x4a6cb528], 0
je 0x4a691afd
mov eax, dword [0x4a6cbd5c]
call fcn.4a68eb6c
mov eax, ebx
call fcn.4a655830
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4a691b3e
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x4a6cb51c]
jne 0x4a691b3e
mov eax, dword [0x4a6cbd5c]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x4a6cbda0], eax
call fcn.4a6628c4
call fcn.4a68426c
mov eax, 0x4a68ced8
test eax, eax
jmp 0x4a691b7c
lea eax, [ebp - 4]
call fcn.4a651d00
cmp dword [ebp - 4], 0
je 0x4a691b66
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4a6cb420], eax
jmp 0x4a691b72
mov eax, dword [0x4a6ce848]
mov eax, dword [eax]
mov dword [0x4a6cb420], eax
mov eax, 0x4a6cbd5c
call fcn.4a60a7cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a691bd0
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.4a607618
lea eax, [ebp - 0xd4]
call fcn.4a60a7cc
lea eax, [ebp - 0x48]
mov edx, dword [0x4a617d78]
call fcn.4a608964
lea eax, [ebp - 8]
call fcn.4a6075ac
lea eax, [ebp - 4]
mov edx, dword [0x4a60e1c4]
call fcn.4a609274
ret