Function at 0x4516e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x628
mov eax, dword [0x4ac13c]
xor eax, esp
mov dword [esp + 0x624], eax
mov eax, dword [esp + 0x630]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x63c]
xor ebx, ebx
push 0x2c
lea ecx, [esp + 0x34]
push ebx
push ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
call fcn.0045c2f0
xor eax, eax
push 0x208
lea edx, [esp + 0xb8]
push ebx
push edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xbc], ebx
call fcn.0045c2f0
add esp, 0x18
xor ebp, ebp
cmp dword [esp + 0x644], ebx
mov dword [esp + 0x14], ebx
je 0x45188d
push ebx
push ebx
lea eax, [esp + 0x1c]
push eax
call fcn.00486d9a
test eax, eax
je 0x4517d1
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push edi
call dword [0x491280]
mov esi, eax
cmp esi, 0xffffffff
push ebx
jne 0x4517d8
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00486d94
xor eax, eax
jmp 0x451ac1
lea edx, [esp + 0x2b4]
push edx
lea eax, [esp + 0x18]
push eax
push esi
mov dword [esp + 0x20], 0x64
call fcn.00486d8e
push esi
call dword [0x491360]
mov eax, dword [esp + 0x10]
xor ecx, ecx
lea eax, [eax + eax + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00451fde
mov ecx, dword [esp + 0x14]
mov esi, eax
add esp, 4
xor eax, eax
cmp ecx, ebx
jbe 0x45186a
jmp 0x451830
movzx ecx, byte [esp + eax + 0x2b0]
shr ecx, 4
movzx edx, word [ecx*2 + 0x495bb8]
mov word [esi + eax*4], dx
movzx ecx, byte [esp + eax + 0x2b0]
and ecx, 0xf
movzx edx, word [ecx*2 + 0x495bb8]
mov word [esi + eax*4 + 2], dx
mov ecx, dword [esp + 0x10]
add eax, 1
cmp eax, ecx
jb 0x451830
push ebx
mov word [esi + ecx*4], bx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ebx
push eax
lea ecx, [esp + 0x2bc]
push ecx
push edx
call fcn.00486d88
mov ebp, eax
cmp ebp, ebx
jne 0x4518b8
mov eax, 1
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x38], 2
mov dword [esp + 0x48], eax
jmp 0x4518f7
push ebx
lea edx, [esp + 0xa8]
push edx
push ebp
call fcn.00486d82
lea eax, [esp + 0xa8]
mov dword [esp + 0x68], eax
mov eax, 2
mov dword [esp + 0x60], 0x24
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], 1
lea edx, [esp + 0x2c]
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x98]
push eax
push 0xffffffffffffffff
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], 0x110
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], 0x30
mov dword [esp + 0xa0], 0xaac56b
mov word [esp + 0xa4], 0xcd44
mov word [esp + 0xa6], 0x11d0
mov byte [esp + 0xa8], 0x8c
mov byte [esp + 0xa9], 0xc2
mov byte [esp + 0xaa], bl
mov byte [esp + 0xab], 0xc0
mov byte [esp + 0xac], 0x4f
mov byte [esp + 0xad], 0xc2
mov byte [esp + 0xae], 0x95
mov byte [esp + 0xaf], 0xee
call fcn.00486d64
test eax, eax
jl 0x451a99
mov ecx, dword [esp + 0x4c]
push ecx
mov dword [esp + 0x1c], ebx
call fcn.00486d7c
cmp eax, ebx
je 0x451a17
push ebx
push ebx
push ebx
push eax
call fcn.00486d76
mov esi, eax
cmp esi, ebx
je 0x451a17
push ebx
push esi
call fcn.00486d6a
mov edi, eax
cmp edi, ebx
je 0x451a17
push esi
call fcn.00451620
push 0x31e
lea edx, [esp + 0x31e]
push ebx
push edx
mov dword [esp + 0x28], eax
mov word [esp + 0x324], bx
call fcn.0045c2f0
mov ecx, dword [edi + 4]
add esp, 0x10
push 0x18f
lea eax, [esp + 0x318]
push eax
push ebx
push ebx
push 4
push ecx
call dword [0x491034]
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x314]
push edx
call fcn.0040205f
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x88]
push ecx
push 0xffffffffffffffff
mov dword [esp + 0x54], 2
mov dword [esp + 0x50], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x90], 0x189a3842
mov word [esp + 0x94], 0x3041
mov word [esp + 0x96], 0x11d1
mov byte [esp + 0x98], 0x85
mov byte [esp + 0x99], 0xe1
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], 0xc0
mov byte [esp + 0x9c], 0x4f
mov byte [esp + 0x9d], 0xc2
mov byte [esp + 0x9e], 0x95
mov byte [esp + 0x9f], 0xee
call fcn.00486d64
cmp ebp, ebx
je 0x451aa9
mov edx, dword [esp + 0x14]
push ebx
push ebp
push edx
call fcn.00486d70
cmp dword [esp + 0x644], ebx
je 0x451abd
mov eax, dword [esp + 0x14]
push ebx
push eax
call fcn.00486d94
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x634]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0045b7a6
add esp, 0x628
ret