Function at 0x451680
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff08
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x48]
mov edx, dword [0x41585c]
call fcn.004060d0
xor eax, eax
push ebp
push 0x45264a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x409d00]
call fcn.00406d20
lea eax, [ebp - 0x58]
push eax
call sub.kernel32.dll_QueryPerformanceCounter_1
test eax, eax
je 0x451715
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x451715
push 0
push 0x3e8
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.004066dc
push edx
push eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
call fcn.004066dc
mov dword [0x56b974], eax
mov dword [0x56b978], edx
push 0x452658
mov eax, dword [0x56a7f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
test eax, eax
setne byte [0x55a424]
mov eax, dword [0x5674d8]
mov dword [eax], 0x434578
mov eax, dword [0x567aac]
mov dword [eax], 0x434ab4
lea edx, [ebp - 0xcc]
mov eax, dword [0x56a7f8]
call fcn.00439188
mov edx, dword [ebp - 0xcc]
mov eax, 0x55ab58
call fcn.0040741c
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x308]
test al, al
je 0x4517c2
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x30c]
test al, al
je 0x4517c2
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x318]
test al, al
je 0x4517c2
mov eax, dword [0x56a7f8]
call fcn.00451170
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x56a7f8]
je 0x4517c2
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00451170
push 0x452678
push 0x452684
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a430], eax
push 0x452694
push 0x4526a4
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a434], eax
call fcn.0045159c
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x308]
test al, al
je 0x4525cd
lea edx, [ebp - 0xc8]
lea eax, [ebp - 0xb4]
call fcn.0042cf4c
lea eax, [ebp - 0xd4]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.004121e0
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0xd0]
mov edx, 0x4526b8
call fcn.00405638
mov eax, dword [ebp - 0xd0]
call fcn.004057b0
push eax
push 0x14
push 0
push 4
lea eax, [ebp - 0xb4]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov ebx, eax
call sub.kernel32.dll_GetLastError_1
test eax, eax
jne 0x451918
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x55a42c], eax
mov eax, dword [0x55a42c]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00407d44
mov edx, dword [0x55a42c]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00407d44
mov edx, dword [0x55a42c]
mov dword [edx + 4], eax
mov eax, dword [0x55a42c]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x55a42c]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0042c0c0
cmp dword [ebp - 4], 0
je 0x45190a
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x55a384], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x4526d8
xor edx, edx
call fcn.0042d320
jmp 0x451962
mov eax, dword [0x567af8]
mov eax, dword [eax]
mov dword [0x55a384], eax
jmp 0x451962
test ebx, ebx
je 0x451948
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x55a42c], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x55a42c]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement_1
jmp 0x451962
push 0
push 0x4526e4
push 0x4526f0
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x55a42c], 0
jne 0x451985
push 0
push 0x4526e4
push 0x452718
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x55a384], 0
jne 0x4519ff
push 0xffffffffffffffff
mov eax, dword [0x55a42c]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4519e3
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x55a42c]
mov eax, dword [eax + 8]
test eax, eax
je 0x4519c7
mov edx, dword [eax]
mov dword [0x55a384], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4519b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4519ea
mov eax, dword [0x55a42c]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleA_2
cmp eax, dword [0x56a7f8]
je 0x451a1b
cmp byte [0x55a424], 0
jne 0x451a1b
xor eax, eax
jmp 0x451a1d
mov al, 1
mov byte [ebp - 0x4d], al
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x30c]
test al, al
je 0x4525c4
mov eax, 0x55a3cc
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3d0
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3d4
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3d8
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3dc
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3e0
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3e4
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3e8
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3ec
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3f0
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3f4
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3f8
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a3fc
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a400
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a404
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a408
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a40c
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a410
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a414
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a418
mov edx, dword [0x56a7f8]
call fcn.00451094
mov eax, 0x55a41c
mov edx, dword [0x56a7f8]
call fcn.00451094
cmp dword [0x55a400], 0
je 0x451ba4
cmp dword [0x55a3cc], 0
je 0x451ba4
cmp dword [0x55a3d4], 0
jne 0x451ea6
cmp byte [ebp - 0x4d], 0
je 0x451ea6
mov ebx, 0x407530
cmp word [ebx], 0x25ff
jne 0x451bde
add ebx, 2
mov eax, dword [ebx]
mov ebx, dword [eax]
lea ecx, [ebp - 8]
lea edx, [ebp - 0x4c]
mov eax, ebx
call fcn.00413fe8
mov eax, dword [ebp - 0x4c]
cmp eax, dword [0x56a7f8]
jne 0x451bde
xor eax, eax
mov dword [ebp - 0x4c], eax
push 0x452750
mov ecx, 0x64
mov edx, 0x452794
mov eax, dword [ebp - 0x4c]
call fcn.00451310
mov esi, eax
cmp dword [ebp - 0x4c], 0
jne 0x451c16
push 0x4527a0
mov ecx, 0x64
mov edx, 0x4527bc
mov eax, esi
call fcn.00451310
mov dword [ebp - 0x4c], eax
push 0x4527c8
mov ecx, 0x64
mov edx, 0x45280c
xor eax, eax
call fcn.00451310
mov edi, eax
cmp dword [0x55a400], 0
jne 0x451e46
cmp dword [ebp - 0x4c], 0
je 0x451e46
push 0x452818
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3dc], eax
cmp dword [0x55a3dc], 0
je 0x451e3b
mov eax, dword [0x55a3dc]
cmp byte [eax], 0xe9
je 0x451e3b
push 0x452848
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3e0], eax
push 0x452878
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3e4], eax
push 0x45289c
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3e8], eax
push 0x4528bc
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
lea edx, [ebp - 0x84]
call fcn.004196cc
mov bl, 1
jmp 0x451e21
cmp dword [ebp - 0x7c], 0
je 0x451dfc
cmp byte [ebp - 0x7d], 0
je 0x451dfc
cmp dword [ebp - 0x70], 4
jne 0x451dfc
test bl, bl
je 0x451d7d
xor ebx, ebx
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 0x7c]
call fcn.004196cc
jmp 0x451d63
cmp word [ebp - 0xa6], 0xc7
jne 0x451d3b
cmp byte [ebp - 0xa4], 0x40
jne 0x451d3b
mov eax, dword [ebp - 0x88]
sub eax, 5
cmp byte [eax], 4
jne 0x451d3b
mov eax, dword [ebp - 0x88]
sub eax, 4
mov eax, dword [eax]
mov dword [0x55a400], eax
jmp 0x451dfc
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x88]
call fcn.004196cc
push esi
push edi
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0xa8]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0xa8], 0
je 0x451dfc
cmp word [ebp - 0xa6], 0xc3
jne 0x451d04
jmp 0x451dfc
mov eax, dword [ebp - 0x7c]
mov dword [0x55a3f8], eax
lea edx, [ebp - 0x84]
mov eax, dword [0x55a3f8]
call fcn.004196cc
jmp 0x451de6
cmp dword [ebp - 0x7c], 0
je 0x451dc1
cmp word [ebp - 0x82], 0xe8
jne 0x451dc1
cmp byte [ebp - 0x7d], 0
je 0x451dc1
cmp dword [ebp - 0x70], 4
jne 0x451dc1
mov eax, dword [ebp - 0x7c]
mov dword [0x55a3fc], eax
jmp 0x451e46
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
push esi
push edi
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x84], 0
je 0x451e46
cmp word [ebp - 0x82], 0xc3
jne 0x451d97
jmp 0x451e46
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
push esi
push edi
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x84], 0
je 0x451e46
cmp word [ebp - 0x82], 0xc3
jne 0x451ccc
jmp 0x451e46
mov byte [ebp - 0x4d], 0
xor eax, eax
mov dword [0x55a3dc], eax
cmp byte [ebp - 0x4d], 0
je 0x451ea6
cmp dword [0x55a3cc], 0
jne 0x451e79
test esi, esi
je 0x451e79
push 0x452900
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3cc], eax
push 0x45293c
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3d0], eax
cmp dword [0x55a3d4], 0
jne 0x451ea6
test edi, edi
je 0x451ea6
push 0x452978
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3d4], eax
push 0x4529b4
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x55a3d8], eax
mov eax, dword [0x56756c]
mov dword [0x55ac54], eax
cmp dword [0x55a400], 0
je 0x451ec8
mov edx, 0x44fa40
mov eax, dword [0x55a400]
call fcn.00449a7c
cmp dword [0x55a3cc], 0
je 0x451ee0
mov edx, 0x44ecc0
mov eax, dword [0x55a3cc]
call fcn.00449a7c
cmp dword [0x55a3d0], 0
je 0x451ef8
mov edx, 0x44ec98
mov eax, dword [0x55a3d0]
call fcn.00449a7c
cmp dword [0x55a3d4], 0
je 0x451f10
mov edx, 0x44ecc0
mov eax, dword [0x55a3d4]
call fcn.00449a7c
cmp dword [0x55a3d8], 0
je 0x451f28
mov edx, 0x44ec98
mov eax, dword [0x55a3d8]
call fcn.00449a7c
cmp dword [0x55a3dc], 0
je 0x451f40
mov edx, 0x44ec6c
mov eax, dword [0x55a3dc]
call fcn.00449a7c
cmp dword [0x55a3ec], 0
je 0x451f58
mov edx, 0x44ed04
mov eax, dword [0x55a3ec]
call fcn.00449a7c
cmp dword [0x55a3f0], 0
je 0x451f70
mov edx, 0x44ed2c
mov eax, dword [0x55a3f0]
call fcn.00449a7c
cmp dword [0x55a3f4], 0
je 0x451f9a
mov byte [0x55a3c0], 1
mov eax, 0x18
call fcn.00402fa4
mov dword [0x55ac64], eax
mov eax, dword [0x55ac64]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x55a3e0], 0
je 0x45206c
cmp dword [0x55a3e4], 0
je 0x45206c
lea edx, [ebp - 0x48]
mov eax, dword [0x55a3e0]
call fcn.0041a988
mov eax, dword [ebp - 0x28]
call fcn.00406a44
dec eax
jne 0x451fd7
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x55a3e0], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x55a3e4]
call fcn.0041a988
mov eax, dword [ebp - 0x28]
call fcn.00406a44
dec eax
jne 0x451ffa
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x55a3e4], eax
lea edx, [ebp - 0x84]
mov eax, dword [0x55a3e0]
call fcn.004196cc
jmp 0x45205a
mov ebx, dword [ebp - 0x7c]
test ebx, ebx
je 0x452039
cmp ebx, dword [0x55a3e4]
jne 0x452039
cmp dword [ebp - 0x70], 4
jne 0x45206c
cmp byte [ebp - 0x7d], 0
je 0x45206c
mov edx, 0x44f4d0
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x45206c
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45200c
cmp dword [0x55a3e8], 0
je 0x4520fa
mov ebx, fcn.00403068
cmp word [ebx], 0x25ff
jne 0x45208c
add ebx, 2
mov eax, dword [ebx]
mov ebx, dword [eax]
lea edx, [ebp - 0x84]
mov eax, dword [0x55a3e8]
call fcn.004196cc
jmp 0x4520e8
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x4520c7
cmp ebx, esi
jne 0x4520c7
cmp dword [ebp - 0x70], 4
jne 0x4520fa
cmp byte [ebp - 0x7d], 0
je 0x4520fa
mov edx, 0x44f3bc
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x4520fa
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45209e
call fcn.004510b0
lea edx, [ebp - 0x84]
call fcn.004196cc
xor ebx, ebx
jmp 0x452159
cmp byte [ebp - 0x7d], 0
je 0x452138
cmp dword [ebp - 0x70], 4
jne 0x452138
cmp dword [ebp - 0x7c], 0
je 0x452138
test bl, bl
je 0x452136
mov edx, 0x44f414
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x45216b
mov bl, 1
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45210e
call fcn.004510b0
lea edx, [ebp - 0x84]
call fcn.004196cc
jmp 0x4521cb
mov ebx, dword [ebp - 0x7c]
test ebx, ebx
je 0x4521aa
cmp ebx, dword [0x55a3fc]
jne 0x4521aa
cmp dword [ebp - 0x70], 4
jne 0x4521dd
cmp byte [ebp - 0x7d], 0
je 0x4521dd
mov edx, 0x44f558
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x4521dd
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45217d
mov ebx, dword [0x55a3f8]
test ebx, ebx
je 0x45225b
cmp dword [0x55a3fc], 0
je 0x45225b
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.004196cc
jmp 0x452249
mov eax, dword [ebp - 0x7c]
cmp eax, dword [0x55a3fc]
jne 0x452228
cmp dword [ebp - 0x70], 4
jne 0x45225b
cmp byte [ebp - 0x7d], 0
je 0x45225b
mov edx, 0x44f558
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x45225b
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x4521ff
mov ebx, dword [0x55a3fc]
test ebx, ebx
je 0x4522d0
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.004196cc
jmp 0x4522be
mov eax, dword [ebp - 0x7c]
cmp eax, dword [0x55a3fc]
jne 0x45229d
cmp dword [ebp - 0x70], 4
jne 0x4522d0
cmp byte [ebp - 0x7d], 0
je 0x4522d0
mov edx, 0x44f558
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x4522d0
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x452274
lea edx, [ebp - 0x84]
mov eax, fcn.004042dc
call fcn.004196cc
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4522eb
mov ebx, eax
jmp 0x4522f0
mov ebx, fcn.004042dc
call fcn.0045109c
lea edx, [ebp - 0x84]
call fcn.004196cc
jmp 0x452346
cmp ebx, dword [ebp - 0x7c]
jne 0x452325
cmp dword [ebp - 0x70], 4
jne 0x452358
cmp byte [ebp - 0x7d], 0
je 0x452358
mov edx, 0x44fd40
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.00449acc
jmp 0x452358
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x452302
call fcn.004510d8
lea edx, [ebp - 0x84]
call fcn.004196cc
jmp 0x45238b
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x4523c9
cmp word [ebp - 0x82], 0x8b
jne 0x4523b7
cmp byte [ebp - 0x80], 0x15
jne 0x4523b7
mov eax, dword [ebp - 0x68]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x56756c]
cmp eax, edx
je 0x4523c9
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45236a
cmp word [ebp - 0x82], 0x8b
jne 0x4523e4
mov edx, 0x55ac58
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.00449acc
call fcn.004510ec
lea edx, [ebp - 0x84]
call fcn.004196cc
jmp 0x452417
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x452455
cmp word [ebp - 0x82], 0xff
jne 0x452443
cmp byte [ebp - 0x80], 0x15
jne 0x452443
mov eax, dword [ebp - 0x68]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x56756c]
cmp eax, edx
je 0x452455
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x4523f6
cmp word [ebp - 0x82], 0xff
jne 0x452470
mov edx, 0x55ac5c
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.00449acc
call fcn.00451100
lea edx, [ebp - 0x84]
call fcn.004196cc
jmp 0x4524a3
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x4524cf
cmp word [ebp - 0x82], 0xff
jne 0x4524bd
cmp byte [ebp - 0x80], 0x25
je 0x4524cf
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x452482
cmp word [ebp - 0x82], 0xff
jne 0x4524ea
mov edx, 0x55ac60
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.00449acc
call fcn.004510c4
mov ebx, eax
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.004196cc
jmp 0x452521
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.004196cc
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x452530
cmp byte [ebp - 0x7f], 0
je 0x452500
mov eax, dword [ebp - 0x7c]
mov dword [0x55a454], eax
mov edx, 0x44faa4
mov eax, ebx
call fcn.00449a7c
call fcn.004484fc
call fcn.00433c50
mov eax, dword [0x55ab58]
call fcn.004507e8
movzx eax, byte [ebp - 0x4d]
call fcn.0042eb70
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x31c]
test al, al
je 0x452589
mov eax, dword [0x55ab58]
mov edx, dword [eax]
call dword [edx + 0x320]
mov dword [0x55ab94], eax
call fcn.004342a0
mov esi, 4
mov ebx, 0x56b9a8
push 1
push 0x2000
push 0x400000
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebx], eax
push 1
push 0x1000
push 0x80000
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebx + 0x10], eax
add ebx, 4
dec esi
jne 0x452593
mov eax, 0x44f0b0
test eax, eax
jmp 0x4525fd
lea eax, [ebp - 4]
call fcn.0042c0c0
cmp dword [ebp - 4], 0
je 0x4525e7
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x55a384], eax
jmp 0x4525f3
mov eax, dword [0x567af8]
mov eax, dword [eax]
mov dword [0x55a384], eax
mov eax, 0x55ab58
call fcn.00407404
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x452651
lea eax, [ebp - 0xd4]
mov edx, 2
call fcn.00405344
lea eax, [ebp - 0xcc]
call fcn.00407404
lea eax, [ebp - 0x48]
mov edx, dword [0x41585c]
call fcn.004061a0
lea eax, [ebp - 8]
call fcn.00405320
lea eax, [ebp - 4]
mov edx, dword [0x409d00]
call fcn.00406d20
ret