Function at 0x451c18
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 [0x415db4]
call fcn.00406364
xor eax, eax
push ebp
push 0x452be2
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40a258]
call fcn.00407150
lea eax, [ebp - 0x58]
push eax
call sub.kernel32.dll_QueryPerformanceCounter_1
test eax, eax
je 0x451cad
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x451cad
push 0
push 0x3e8
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.00406970
push edx
push eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
call fcn.00406970
mov dword [0x5ce974], eax
mov dword [0x5ce978], edx
push 0x452bf0
mov eax, dword [0x5cd7f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
test eax, eax
setne byte [0x5bc42c]
mov eax, dword [0x5ca514]
mov dword [eax], 0x434b10
mov eax, dword [0x5cad2c]
mov dword [eax], 0x43504c
lea edx, [ebp - 0xcc]
mov eax, dword [0x5cd7f8]
call fcn.00439720
mov edx, dword [ebp - 0xcc]
mov eax, 0x5bcb60
call fcn.0040784c
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x308]
test al, al
je 0x451d5a
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x30c]
test al, al
je 0x451d5a
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x318]
test al, al
je 0x451d5a
mov eax, dword [0x5cd7f8]
call fcn.00451708
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x5cd7f8]
je 0x451d5a
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00451708
push 0x452c10
push 0x452c1c
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc438], eax
push 0x452c2c
push 0x452c3c
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc43c], eax
call fcn.00451b34
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x308]
test al, al
je 0x452b65
lea edx, [ebp - 0xc8]
lea eax, [ebp - 0xb4]
call fcn.0042d4e4
lea eax, [ebp - 0xd4]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.00412738
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0xd0]
mov edx, 0x452c50
call fcn.004058c0
mov eax, dword [ebp - 0xd0]
call fcn.00405a38
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 0x451eb0
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x5bc434], eax
mov eax, dword [0x5bc434]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.0040826c
mov edx, dword [0x5bc434]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.0040826c
mov edx, dword [0x5bc434]
mov dword [edx + 4], eax
mov eax, dword [0x5bc434]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x5bc434]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0042c658
cmp dword [ebp - 4], 0
je 0x451ea2
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x5bc38c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x452c70
xor edx, edx
call fcn.0042d8b8
jmp 0x451efa
mov eax, dword [0x5cad8c]
mov eax, dword [eax]
mov dword [0x5bc38c], eax
jmp 0x451efa
test ebx, ebx
je 0x451ee0
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x5bc434], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x5bc434]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement_1
jmp 0x451efa
push 0
push 0x452c7c
push 0x452c88
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x5bc434], 0
jne 0x451f1d
push 0
push 0x452c7c
push 0x452cb0
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x5bc38c], 0
jne 0x451f97
push 0xffffffffffffffff
mov eax, dword [0x5bc434]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x451f7b
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x5bc434]
mov eax, dword [eax + 8]
test eax, eax
je 0x451f5f
mov edx, dword [eax]
mov dword [0x5bc38c], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x451f50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x451f82
mov eax, dword [0x5bc434]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleA_2
cmp eax, dword [0x5cd7f8]
je 0x451fb3
cmp byte [0x5bc42c], 0
jne 0x451fb3
xor eax, eax
jmp 0x451fb5
mov al, 1
mov byte [ebp - 0x4d], al
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x30c]
test al, al
je 0x452b5c
mov eax, 0x5bc3d4
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3d8
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3dc
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3e0
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3e4
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3e8
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3ec
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3f0
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3f4
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3f8
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc3fc
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc400
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc404
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc408
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc40c
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc410
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc414
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc418
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc41c
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc420
mov edx, dword [0x5cd7f8]
call fcn.0045162c
mov eax, 0x5bc424
mov edx, dword [0x5cd7f8]
call fcn.0045162c
cmp dword [0x5bc408], 0
je 0x45213c
cmp dword [0x5bc3d4], 0
je 0x45213c
cmp dword [0x5bc3dc], 0
jne 0x45243e
cmp byte [ebp - 0x4d], 0
je 0x45243e
mov ebx, 0x4079d4
cmp word [ebx], 0x25ff
jne 0x452176
add ebx, 2
mov eax, dword [ebx]
mov ebx, dword [eax]
lea ecx, [ebp - 8]
lea edx, [ebp - 0x4c]
mov eax, ebx
call fcn.00414540
mov eax, dword [ebp - 0x4c]
cmp eax, dword [0x5cd7f8]
jne 0x452176
xor eax, eax
mov dword [ebp - 0x4c], eax
push 0x452ce8
mov ecx, 0x64
mov edx, 0x452d2c
mov eax, dword [ebp - 0x4c]
call fcn.004518a8
mov esi, eax
cmp dword [ebp - 0x4c], 0
jne 0x4521ae
push 0x452d38
mov ecx, 0x64
mov edx, 0x452d54
mov eax, esi
call fcn.004518a8
mov dword [ebp - 0x4c], eax
push 0x452d60
mov ecx, 0x64
mov edx, 0x452da4
xor eax, eax
call fcn.004518a8
mov edi, eax
cmp dword [0x5bc408], 0
jne 0x4523de
cmp dword [ebp - 0x4c], 0
je 0x4523de
push 0x452db0
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3e4], eax
cmp dword [0x5bc3e4], 0
je 0x4523d3
mov eax, dword [0x5bc3e4]
cmp byte [eax], 0xe9
je 0x4523d3
push 0x452de0
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3e8], eax
push 0x452e10
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3ec], eax
push 0x452e34
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3f0], eax
push 0x452e54
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_GetProcAddress_1
lea edx, [ebp - 0x84]
call fcn.00419c24
mov bl, 1
jmp 0x4523b9
cmp dword [ebp - 0x7c], 0
je 0x452394
cmp byte [ebp - 0x7d], 0
je 0x452394
cmp dword [ebp - 0x70], 4
jne 0x452394
test bl, bl
je 0x452315
xor ebx, ebx
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 0x7c]
call fcn.00419c24
jmp 0x4522fb
cmp word [ebp - 0xa6], 0xc7
jne 0x4522d3
cmp byte [ebp - 0xa4], 0x40
jne 0x4522d3
mov eax, dword [ebp - 0x88]
sub eax, 5
cmp byte [eax], 4
jne 0x4522d3
mov eax, dword [ebp - 0x88]
sub eax, 4
mov eax, dword [eax]
mov dword [0x5bc408], eax
jmp 0x452394
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x88]
call fcn.00419c24
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 0x452394
cmp word [ebp - 0xa6], 0xc3
jne 0x45229c
jmp 0x452394
mov eax, dword [ebp - 0x7c]
mov dword [0x5bc400], eax
lea edx, [ebp - 0x84]
mov eax, dword [0x5bc400]
call fcn.00419c24
jmp 0x45237e
cmp dword [ebp - 0x7c], 0
je 0x452359
cmp word [ebp - 0x82], 0xe8
jne 0x452359
cmp byte [ebp - 0x7d], 0
je 0x452359
cmp dword [ebp - 0x70], 4
jne 0x452359
mov eax, dword [ebp - 0x7c]
mov dword [0x5bc404], eax
jmp 0x4523de
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x4523de
cmp word [ebp - 0x82], 0xc3
jne 0x45232f
jmp 0x4523de
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x4523de
cmp word [ebp - 0x82], 0xc3
jne 0x452264
jmp 0x4523de
mov byte [ebp - 0x4d], 0
xor eax, eax
mov dword [0x5bc3e4], eax
cmp byte [ebp - 0x4d], 0
je 0x45243e
cmp dword [0x5bc3d4], 0
jne 0x452411
test esi, esi
je 0x452411
push 0x452e98
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3d4], eax
push 0x452ed4
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3d8], eax
cmp dword [0x5bc3dc], 0
jne 0x45243e
test edi, edi
je 0x45243e
push 0x452f10
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3dc], eax
push 0x452f4c
push edi
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc3e0], eax
mov eax, dword [0x5ca5c8]
mov dword [0x5bcc5c], eax
cmp dword [0x5bc408], 0
je 0x452460
mov edx, 0x44ffd8
mov eax, dword [0x5bc408]
call fcn.0044a014
cmp dword [0x5bc3d4], 0
je 0x452478
mov edx, 0x44f258
mov eax, dword [0x5bc3d4]
call fcn.0044a014
cmp dword [0x5bc3d8], 0
je 0x452490
mov edx, 0x44f230
mov eax, dword [0x5bc3d8]
call fcn.0044a014
cmp dword [0x5bc3dc], 0
je 0x4524a8
mov edx, 0x44f258
mov eax, dword [0x5bc3dc]
call fcn.0044a014
cmp dword [0x5bc3e0], 0
je 0x4524c0
mov edx, 0x44f230
mov eax, dword [0x5bc3e0]
call fcn.0044a014
cmp dword [0x5bc3e4], 0
je 0x4524d8
mov edx, 0x44f204
mov eax, dword [0x5bc3e4]
call fcn.0044a014
cmp dword [0x5bc3f4], 0
je 0x4524f0
mov edx, 0x44f29c
mov eax, dword [0x5bc3f4]
call fcn.0044a014
cmp dword [0x5bc3f8], 0
je 0x452508
mov edx, 0x44f2c4
mov eax, dword [0x5bc3f8]
call fcn.0044a014
cmp dword [0x5bc3fc], 0
je 0x452532
mov byte [0x5bc3c8], 1
mov eax, 0x18
call fcn.00403108
mov dword [0x5bcc6c], eax
mov eax, dword [0x5bcc6c]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x5bc3e8], 0
je 0x452604
cmp dword [0x5bc3ec], 0
je 0x452604
lea edx, [ebp - 0x48]
mov eax, dword [0x5bc3e8]
call fcn.0041aee0
mov eax, dword [ebp - 0x28]
call fcn.00406e74
dec eax
jne 0x45256f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x5bc3e8], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x5bc3ec]
call fcn.0041aee0
mov eax, dword [ebp - 0x28]
call fcn.00406e74
dec eax
jne 0x452592
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x5bc3ec], eax
lea edx, [ebp - 0x84]
mov eax, dword [0x5bc3e8]
call fcn.00419c24
jmp 0x4525f2
mov ebx, dword [ebp - 0x7c]
test ebx, ebx
je 0x4525d1
cmp ebx, dword [0x5bc3ec]
jne 0x4525d1
cmp dword [ebp - 0x70], 4
jne 0x452604
cmp byte [ebp - 0x7d], 0
je 0x452604
mov edx, 0x44fa68
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x452604
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x4525a4
cmp dword [0x5bc3f0], 0
je 0x452692
mov ebx, fcn.004031cc
cmp word [ebx], 0x25ff
jne 0x452624
add ebx, 2
mov eax, dword [ebx]
mov ebx, dword [eax]
lea edx, [ebp - 0x84]
mov eax, dword [0x5bc3f0]
call fcn.00419c24
jmp 0x452680
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x45265f
cmp ebx, esi
jne 0x45265f
cmp dword [ebp - 0x70], 4
jne 0x452692
cmp byte [ebp - 0x7d], 0
je 0x452692
mov edx, 0x44f954
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x452692
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x452636
call fcn.00451648
lea edx, [ebp - 0x84]
call fcn.00419c24
xor ebx, ebx
jmp 0x4526f1
cmp byte [ebp - 0x7d], 0
je 0x4526d0
cmp dword [ebp - 0x70], 4
jne 0x4526d0
cmp dword [ebp - 0x7c], 0
je 0x4526d0
test bl, bl
je 0x4526ce
mov edx, 0x44f9ac
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x452703
mov bl, 1
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x4526a6
call fcn.00451648
lea edx, [ebp - 0x84]
call fcn.00419c24
jmp 0x452763
mov ebx, dword [ebp - 0x7c]
test ebx, ebx
je 0x452742
cmp ebx, dword [0x5bc404]
jne 0x452742
cmp dword [ebp - 0x70], 4
jne 0x452775
cmp byte [ebp - 0x7d], 0
je 0x452775
mov edx, 0x44faf0
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x452775
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x452715
mov ebx, dword [0x5bc400]
test ebx, ebx
je 0x4527f3
cmp dword [0x5bc404], 0
je 0x4527f3
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.00419c24
jmp 0x4527e1
mov eax, dword [ebp - 0x7c]
cmp eax, dword [0x5bc404]
jne 0x4527c0
cmp dword [ebp - 0x70], 4
jne 0x4527f3
cmp byte [ebp - 0x7d], 0
je 0x4527f3
mov edx, 0x44faf0
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x4527f3
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x452797
mov ebx, dword [0x5bc404]
test ebx, ebx
je 0x452868
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.00419c24
jmp 0x452856
mov eax, dword [ebp - 0x7c]
cmp eax, dword [0x5bc404]
jne 0x452835
cmp dword [ebp - 0x70], 4
jne 0x452868
cmp byte [ebp - 0x7d], 0
je 0x452868
mov edx, 0x44faf0
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x452868
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x45280c
lea edx, [ebp - 0x84]
mov eax, fcn.00404564
call fcn.00419c24
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x452883
mov ebx, eax
jmp 0x452888
mov ebx, fcn.00404564
call fcn.00451634
lea edx, [ebp - 0x84]
call fcn.00419c24
jmp 0x4528de
cmp ebx, dword [ebp - 0x7c]
jne 0x4528bd
cmp dword [ebp - 0x70], 4
jne 0x4528f0
cmp byte [ebp - 0x7d], 0
je 0x4528f0
mov edx, 0x4502d8
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
call fcn.0044a064
jmp 0x4528f0
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
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 0x45289a
call fcn.00451670
lea edx, [ebp - 0x84]
call fcn.00419c24
jmp 0x452923
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x452961
cmp word [ebp - 0x82], 0x8b
jne 0x45294f
cmp byte [ebp - 0x80], 0x15
jne 0x45294f
mov eax, dword [ebp - 0x68]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x5ca5c8]
cmp eax, edx
je 0x452961
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x452902
cmp word [ebp - 0x82], 0x8b
jne 0x45297c
mov edx, 0x5bcc60
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.0044a064
call fcn.00451684
lea edx, [ebp - 0x84]
call fcn.00419c24
jmp 0x4529af
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x4529ed
cmp word [ebp - 0x82], 0xff
jne 0x4529db
cmp byte [ebp - 0x80], 0x15
jne 0x4529db
mov eax, dword [ebp - 0x68]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x5ca5c8]
cmp eax, edx
je 0x4529ed
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x45298e
cmp word [ebp - 0x82], 0xff
jne 0x452a08
mov edx, 0x5bcc64
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.0044a064
call fcn.00451698
lea edx, [ebp - 0x84]
call fcn.00419c24
jmp 0x452a3b
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x452a67
cmp word [ebp - 0x82], 0xff
jne 0x452a55
cmp byte [ebp - 0x80], 0x25
je 0x452a67
movzx eax, word [ebp - 0x82]
add eax, 0xffffff3e
sub ax, 2
jae 0x452a1a
cmp word [ebp - 0x82], 0xff
jne 0x452a82
mov edx, 0x5bcc68
mov eax, dword [ebp - 0x68]
add eax, 2
call fcn.0044a064
call fcn.0045165c
mov ebx, eax
lea edx, [ebp - 0x84]
mov eax, ebx
call fcn.00419c24
jmp 0x452ab9
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x64]
call fcn.00419c24
lea esi, [ebp - 0xf8]
lea edi, [ebp - 0x84]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x84], 0
je 0x452ac8
cmp byte [ebp - 0x7f], 0
je 0x452a98
mov eax, dword [ebp - 0x7c]
mov dword [0x5bc45c], eax
mov edx, 0x45003c
mov eax, ebx
call fcn.0044a014
call fcn.00448a94
call fcn.004341e8
mov eax, dword [0x5bcb60]
call fcn.00450d80
movzx eax, byte [ebp - 0x4d]
call fcn.0042f108
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x31c]
test al, al
je 0x452b21
mov eax, dword [0x5bcb60]
mov edx, dword [eax]
call dword [edx + 0x320]
mov dword [0x5bcb9c], eax
call fcn.00434838
mov esi, 4
mov ebx, 0x5ce9a8
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 0x452b2b
mov eax, 0x44f648
test eax, eax
jmp 0x452b95
lea eax, [ebp - 4]
call fcn.0042c658
cmp dword [ebp - 4], 0
je 0x452b7f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x5bc38c], eax
jmp 0x452b8b
mov eax, dword [0x5cad8c]
mov eax, dword [eax]
mov dword [0x5bc38c], eax
mov eax, 0x5bcb60
call fcn.00407834
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x452be9
lea eax, [ebp - 0xd4]
mov edx, 2
call fcn.004055cc
lea eax, [ebp - 0xcc]
call fcn.00407834
lea eax, [ebp - 0x48]
mov edx, dword [0x415db4]
call fcn.00406434
lea eax, [ebp - 8]
call fcn.004055a8
lea eax, [ebp - 4]
mov edx, dword [0x40a258]
call fcn.00407150
ret