Function at 0x460608
Capabilities:
Check os version
Link many functions at runtime

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 - 0x14], eax
lea eax, [ebp - 0xb0]
mov edx, dword [0x410b60]
call fcn.004054d0
xor eax, eax
push ebp
push 0x461680
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x408754]
call fcn.004061b8
lea eax, [ebp - 0x20]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4606a0
lea eax, [ebp - 0x28]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4606a0
push 0
push 0x3e8
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
call fcn.00405ab8
push edx
push eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.00405ab8
mov dword [0x52ff08], eax
mov dword [0x52ff0c], edx
push 0x461690
mov eax, dword [0x52ff04]
push eax
call sub.kernel32.dll_GetProcAddress_1
test eax, eax
setne byte [0x52ff10]
cmp byte [0x52ff10], 0
je 0x4606c7
call fcn.004603e4
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x4606ea
push 0x4616b0
push 0x4616bc
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52ff20], eax
mov eax, dword [0x53345c]
mov dword [eax], fcn.0045fad4
mov eax, dword [0x533044]
mov dword [eax], 0x438724
mov eax, dword [0x533640]
mov dword [eax], 0x438cfc
mov eax, 0x45fc34
mov edx, dword [0x53333c]
mov dword [edx], eax
push 0x4616cc
push 0x4616d8
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52ff2c], eax
push 0x4616e8
push 0x4616f8
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52ff30], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x52ff04]
call fcn.0043ce5c
mov edx, dword [ebp - 0xd4]
mov eax, 0x53072c
call fcn.00406888
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4607ca
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4607ca
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4607ca
mov eax, dword [0x52ff04]
call fcn.0045fd40
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x52ff04]
je 0x4607ca
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0045fd40
call fcn.004602fc
push 0x5358c4
call sub.kernel32.dll_InitializeCriticalSection_1
push 0x5358ac
call sub.kernel32.dll_InitializeCriticalSection_1
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x461600
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.00430e20
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040ab60
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46170c
call fcn.00404aa4
mov eax, dword [ebp - 0xd8]
call fcn.00404c58
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 0x460900
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x52ff28], eax
mov eax, dword [0x52ff28]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.004073cc
mov edx, dword [0x52ff28]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.004073cc
mov edx, dword [0x52ff28]
mov dword [edx + 4], eax
mov eax, dword [0x52ff28]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x52ff28]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0042fcf4
cmp dword [ebp - 4], 0
je 0x4608f2
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x52fe24], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x461728
xor edx, edx
call fcn.00431580
jmp 0x46094a
mov eax, dword [0x53369c]
mov eax, dword [eax]
mov dword [0x52fe24], eax
jmp 0x46094a
test ebx, ebx
je 0x460930
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x52ff28], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x52ff28]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement_1
jmp 0x46094a
push 0
push 0x461740
push 0x46174c
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x52ff28], 0
jne 0x46096d
push 0
push 0x461740
push 0x461774
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x52fe24], 0
jne 0x4609e7
push 0xffffffffffffffff
mov eax, dword [0x52ff28]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4609cb
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x52ff28]
mov eax, dword [eax + 8]
test eax, eax
je 0x4609af
mov edx, dword [eax]
mov dword [0x52fe24], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4609a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4609d2
mov eax, dword [0x52ff28]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleA_2
cmp eax, dword [0x52ff04]
je 0x460a03
cmp byte [0x52ff10], 0
jne 0x460a03
xor eax, eax
jmp 0x460a05
mov al, 1
mov byte [ebp - 0xd], al
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4615f7
mov eax, 0x52feac
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52feb0
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52feb4
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52feb8
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52febc
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fec0
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fec4
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fec8
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fecc
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fed0
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fed4
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fed8
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fee4
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fee8
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52feec
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fef0
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fef4
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fef8
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52fefc
mov edx, dword [0x52ff04]
call fcn.0045fc50
mov eax, 0x52ff00
mov edx, dword [0x52ff04]
call fcn.0045fc50
cmp dword [0x52fef4], 0
je 0x460b85
cmp dword [0x52feac], 0
je 0x460b85
cmp dword [0x52feb4], 0
je 0x460b85
cmp dword [0x52febc], 0
jne 0x460ed3
cmp byte [ebp - 0xd], 0
je 0x460ed3
mov esi, 0x40699c
cmp word [esi], 0x25ff
jne 0x460bc4
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov ebx, dword [0x53307c]
mov ebx, dword [ebx]
lea ecx, [ebp - 0x14]
lea edx, [ebp - 8]
mov eax, esi
call ebx
mov eax, dword [ebp - 8]
cmp eax, dword [0x52ff04]
jne 0x460bc4
xor eax, eax
mov dword [ebp - 8], eax
push 0x4617ac
mov ecx, 0x46
mov edx, 0x4617f0
mov eax, dword [ebp - 8]
call fcn.0045ffd4
mov esi, eax
cmp dword [ebp - 8], 0
jne 0x460bfc
push 0x4617fc
mov ecx, 0x46
mov edx, 0x461818
mov eax, esi
call fcn.0045ffd4
mov dword [ebp - 8], eax
push 0x461824
mov ecx, 0x46
mov edx, 0x461868
xor eax, eax
call fcn.0045ffd4
mov edi, eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [0x52fef4], 0
jne 0x460e3a
cmp dword [ebp - 8], 0
je 0x460e3a
push 0x461874
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fec4], eax
cmp dword [0x52fec4], 0
je 0x460e2f
mov eax, dword [0x52fec4]
cmp byte [eax], 0xe9
je 0x460e2f
push 0x4618a4
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fec8], eax
push 0x4618d4
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fecc], eax
push 0x4618f8
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fed0], eax
push 0x461940
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fed4], eax
push 0x461968
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fed8], eax
push 0x461988
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fedc], eax
push 0x4619a4
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fee4], eax
push 0x4619c4
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetProcAddress_1
lea edx, [ebp - 0x4c]
call fcn.00414b24
mov bl, 1
jmp 0x460e1b
cmp dword [ebp - 0x44], 0
je 0x460df9
cmp byte [ebp - 0x45], 0
je 0x460df9
cmp dword [ebp - 0x38], 4
jne 0x460df9
test bl, bl
je 0x460d8e
xor ebx, ebx
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x44]
call fcn.00414b24
jmp 0x460d7e
cmp word [ebp - 0x6e], 0xc7
jne 0x460d5c
cmp byte [ebp - 0x6c], 0x40
jne 0x460d5c
mov eax, dword [ebp - 0x50]
sub eax, 5
cmp byte [eax], 4
jne 0x460d5c
mov eax, dword [ebp - 0x50]
sub eax, 4
mov eax, dword [eax]
mov dword [0x52fefc], eax
jmp 0x460df9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x50]
call fcn.00414b24
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x70]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x70], 0
je 0x460df9
cmp word [ebp - 0x6e], 0xc3
jne 0x460d31
jmp 0x460df9
mov eax, dword [ebp - 0x44]
mov dword [0x52fef4], eax
lea edx, [ebp - 0x4c]
mov eax, dword [0x52fef4]
call fcn.00414b24
jmp 0x460de9
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x460dc7
cmp word [ebp - 0x4a], 0xe8
jne 0x460dc7
cmp byte [ebp - 0x45], 0
je 0x460dc7
cmp dword [ebp - 0x38], 4
jne 0x460dc7
mov dword [0x52fef8], eax
jmp 0x460e3a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x4c], 0
je 0x460e3a
cmp word [ebp - 0x4a], 0xc3
jne 0x460da5
jmp 0x460e3a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x4c], 0
je 0x460e3a
cmp word [ebp - 0x4a], 0xc3
jne 0x460d00
jmp 0x460e3a
mov byte [ebp - 0xd], 0
xor eax, eax
mov dword [0x52fec4], eax
cmp byte [ebp - 0xd], 0
je 0x460ed3
cmp dword [0x52feac], 0
jne 0x460e71
test esi, esi
je 0x460e71
push 0x461a08
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52feac], eax
push 0x461a44
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52feb0], eax
cmp dword [0x52feb4], 0
jne 0x460e9e
test edi, edi
je 0x460e9e
push 0x461a80
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52feb4], eax
push 0x461abc
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52feb8], eax
cmp dword [0x52febc], 0
jne 0x460ed3
cmp dword [ebp - 0xc], 0
je 0x460ed3
push 0x461af8
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52febc], eax
push 0x461b38
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x52fec0], eax
mov eax, dword [0x5330d4]
mov dword [0x53085c], eax
cmp dword [0x52fefc], 0
je 0x460ef5
mov edx, 0x45dbd8
mov eax, dword [0x52fefc]
call fcn.00456920
cmp dword [0x52feac], 0
je 0x460f0d
mov edx, 0x45d2d4
mov eax, dword [0x52feac]
call fcn.00456920
cmp dword [0x52feb0], 0
je 0x460f25
mov edx, 0x45d2ac
mov eax, dword [0x52feb0]
call fcn.00456920
cmp dword [0x52feb4], 0
je 0x460f3d
mov edx, 0x45d2d4
mov eax, dword [0x52feb4]
call fcn.00456920
cmp dword [0x52feb8], 0
je 0x460f55
mov edx, 0x45d2ac
mov eax, dword [0x52feb8]
call fcn.00456920
cmp dword [0x52febc], 0
je 0x460f6d
mov edx, 0x45d2d4
mov eax, dword [0x52febc]
call fcn.00456920
cmp dword [0x52fec0], 0
je 0x460f85
mov edx, 0x45d2ac
mov eax, dword [0x52fec0]
call fcn.00456920
cmp dword [0x52fec4], 0
je 0x460f9d
mov edx, 0x45d280
mov eax, dword [0x52fec4]
call fcn.00456920
cmp dword [0x52fee8], 0
je 0x460fb5
mov edx, 0x45d318
mov eax, dword [0x52fee8]
call fcn.00456920
cmp dword [0x52feec], 0
je 0x460fcd
mov edx, 0x45d340
mov eax, dword [0x52feec]
call fcn.00456920
cmp dword [0x52fef0], 0
je 0x460ff7
mov byte [0x52fe94], 1
mov eax, 0x18
call fcn.00402754
mov dword [0x530870], eax
mov eax, dword [0x530870]
push eax
call sub.kernel32.dll_InitializeCriticalSection_1
cmp dword [0x52fec8], 0
je 0x4610d2
cmp dword [0x52fecc], 0
je 0x4610d2
lea edx, [ebp - 0xb0]
mov eax, dword [0x52fec8]
call fcn.00415db0
mov eax, dword [ebp - 0x90]
call fcn.00405edc
dec eax
jne 0x46103d
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0xc]
mov dword [0x52fec8], eax
lea edx, [ebp - 0xb0]
mov eax, dword [0x52fecc]
call fcn.00415db0
mov eax, dword [ebp - 0x90]
call fcn.00405edc
dec eax
jne 0x461069
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0xc]
mov dword [0x52fecc], eax
lea edx, [ebp - 0x4c]
mov eax, dword [0x52fec8]
call fcn.00414b24
jmp 0x4610c3
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4610a5
cmp eax, dword [0x52fecc]
jne 0x4610a5
cmp dword [ebp - 0x38], 4
jne 0x4610d2
cmp byte [ebp - 0x45], 0
je 0x4610d2
mov edx, 0x45d500
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x4610d2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461078
cmp dword [0x52fee4], 0
je 0x461155
mov esi, fcn.00402840
cmp word [esi], 0x25ff
jne 0x4610ee
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x4c]
mov eax, dword [0x52fee4]
call fcn.00414b24
jmp 0x461146
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x461126
cmp esi, eax
jne 0x461126
cmp dword [ebp - 0x38], 4
jne 0x461155
cmp byte [ebp - 0x45], 0
je 0x461155
mov edx, 0x45d3f0
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x461155
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4610fd
call fcn.0045fc6c
lea edx, [ebp - 0x4c]
call fcn.00414b24
xor ebx, ebx
jmp 0x4611ae
cmp byte [ebp - 0x45], 0
je 0x461190
cmp dword [ebp - 0x38], 4
jne 0x461190
cmp dword [ebp - 0x44], 0
je 0x461190
test bl, bl
je 0x46118e
mov edx, 0x45d448
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x4611bd
mov bl, 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461166
call fcn.0045fc6c
lea edx, [ebp - 0x4c]
call fcn.00414b24
jmp 0x461217
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4611f9
cmp eax, dword [0x52fef8]
jne 0x4611f9
cmp dword [ebp - 0x38], 4
jne 0x461226
cmp byte [ebp - 0x45], 0
je 0x461226
mov edx, 0x45d5e4
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x461226
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4611cc
mov ebx, dword [0x52fef4]
test ebx, ebx
je 0x46129b
cmp dword [0x52fef8], 0
je 0x46129b
lea edx, [ebp - 0x4c]
mov eax, ebx
call fcn.00414b24
jmp 0x46128c
mov eax, dword [ebp - 0x44]
cmp eax, dword [0x52fef8]
jne 0x46126e
cmp dword [ebp - 0x38], 4
jne 0x46129b
cmp byte [ebp - 0x45], 0
je 0x46129b
mov edx, 0x45d5f4
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x46129b
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461245
mov ebx, dword [0x52fef8]
test ebx, ebx
je 0x461307
lea edx, [ebp - 0x4c]
mov eax, ebx
call fcn.00414b24
jmp 0x4612f8
mov eax, dword [ebp - 0x44]
cmp eax, dword [0x52fef8]
jne 0x4612da
cmp dword [ebp - 0x38], 4
jne 0x461307
cmp byte [ebp - 0x45], 0
je 0x461307
mov edx, 0x45d604
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x461307
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4612b1
call fcn.0045fca8
lea edx, [ebp - 0x4c]
call fcn.00414b24
jmp 0x461334
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x4c], 0
je 0x461369
cmp word [ebp - 0x4a], 0x8b
jne 0x46135a
cmp byte [ebp - 0x48], 0x15
jne 0x46135a
mov eax, dword [ebp - 0x30]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x5330d4]
cmp eax, edx
je 0x461369
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461316
cmp word [ebp - 0x4a], 0x8b
jne 0x461381
mov edx, 0x530860
mov eax, dword [ebp - 0x30]
add eax, 2
call fcn.00456954
call fcn.0045fcbc
lea edx, [ebp - 0x4c]
call fcn.00414b24
jmp 0x4613ae
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x4c], 0
je 0x4613e3
cmp word [ebp - 0x4a], 0xff
jne 0x4613d4
cmp byte [ebp - 0x48], 0x15
jne 0x4613d4
mov eax, dword [ebp - 0x30]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x5330d4]
cmp eax, edx
je 0x4613e3
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461390
cmp word [ebp - 0x4a], 0xff
jne 0x4613fb
mov edx, 0x530864
mov eax, dword [ebp - 0x30]
add eax, 2
call fcn.00456954
mov eax, dword [0x5334b0]
mov eax, dword [eax]
mov dword [0x530868], eax
call fcn.0045fcd0
lea edx, [ebp - 0x4c]
call fcn.00414b24
jmp 0x461434
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x4c], 0
je 0x461457
cmp word [ebp - 0x4a], 0xff
jne 0x461448
cmp byte [ebp - 0x48], 0x25
je 0x461457
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461416
cmp word [ebp - 0x4a], 0xff
jne 0x46146f
mov edx, 0x53086c
mov eax, dword [ebp - 0x30]
add eax, 2
call fcn.00456954
call fcn.0045fc94
mov esi, eax
lea edx, [ebp - 0x4c]
mov eax, esi
call fcn.00414b24
jmp 0x4614a2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebp - 0x4c], 0
je 0x4614ae
cmp byte [ebp - 0x47], 0
je 0x461482
mov eax, dword [ebp - 0x44]
mov dword [0x52ff50], eax
mov edx, 0x45dc3c
mov eax, esi
call fcn.00456920
lea edx, [ebp - 0x4c]
mov eax, fcn.004038f0
call fcn.00414b24
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4614da
mov esi, eax
jmp 0x4614df
mov esi, fcn.004038f0
call fcn.0045fc58
lea edx, [ebp - 0x4c]
call fcn.00414b24
jmp 0x461531
cmp esi, dword [ebp - 0x44]
jne 0x461511
cmp dword [ebp - 0x38], 4
jne 0x461540
cmp byte [ebp - 0x45], 0
je 0x461540
mov edx, 0x45df34
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
call fcn.00456954
jmp 0x461540
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x2c]
call fcn.00414b24
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x4c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
mov ax, word [ebp - 0x4a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4614ee
call fcn.0045fc80
mov edx, 0x45df44
call fcn.00456920
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.00454ec8
call fcn.00437d30
mov esi, fcn.0040473c
cmp word [esi], 0x25ff
jne 0x46157b
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x53087c], esi
lea edx, [ebp - 0xb0]
mov eax, esi
call fcn.00415db0
cmp byte [ebp - 0xb0], 0
je 0x4615a8
mov eax, dword [ebp - 0xa8]
add eax, dword [ebp - 0xa4]
mov dword [0x530880], eax
push 0
call sub.kernel32.dll_GetModuleHandleA_2
cmp eax, dword [0x52ff04]
je 0x4615c0
cmp byte [0x52ff10], 0
je 0x4615ca
mov eax, dword [0x53072c]
call fcn.0045eb0c
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4615f2
mov eax, dword [0x53072c]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x530770], eax
call fcn.004383b4
call fcn.00455054
mov eax, 0x45cf3c
test eax, eax
jmp 0x461630
lea eax, [ebp - 4]
call fcn.0042fcf4
cmp dword [ebp - 4], 0
je 0x46161a
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x52fe24], eax
jmp 0x461626
mov eax, dword [0x53369c]
mov eax, dword [eax]
mov dword [0x52fe24], eax
mov eax, 0x53072c
call fcn.00406870
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x461687
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.004047ac
lea eax, [ebp - 0xd4]
call fcn.00406870
lea eax, [ebp - 0xb0]
mov edx, dword [0x410b60]
call fcn.004055a0
lea eax, [ebp - 0x14]
call fcn.00404788
lea eax, [ebp - 4]
mov edx, dword [0x408754]
call fcn.004061b8
ret