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

Disassembly:
sub esp, 0x68
push ebx
push ebp
mov ebp, dword [esp + 0x78]
push esi
mov esi, edx
lea edx, [eax + ebp]
mov eax, dword [esp + 0x78]
push edi
mov dword [esp + 0x80], eax
add eax, ecx
mov ecx, dword [esi + 0x2850]
mov dword [esp + 0x24], edx
sub edx, ebp
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x2854]
add eax, ecx
push ebp
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x2814]
lea ebx, [esi + 0x1004]
push ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x2810]
lea edi, [esi + 0x1808]
mov dword [esp + 0x3c], ecx
push edi
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x2818]
push esi
push ecx
lea edx, [esp + 0x38]
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], eax
call fcn.00459a60
add esp, 0x18
cmp eax, 0xffffff88
ja 0x45a336
lea edx, [eax + ebp]
mov ebp, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
add eax, ebp
mov ecx, 4
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6c], ecx
sub eax, edx
lea ecx, [esp + 0x44]
call fcn.00457bc0
cmp eax, 0xffffff88
jbe 0x45a1ab
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
mov ebp, dword [esp + 0x48]
movzx edx, word [esi]
mov eax, dword [esp + 0x44]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
add ebp, edx
lea ecx, [esp + 0x44]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], eax
call fcn.00457cb0
movzx edx, word [ebx]
mov eax, dword [esp + 0x44]
add esi, 4
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x48]
mov ecx, esi
and ecx, 0x1f
shl eax, cl
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
add esi, edx
lea ecx, [esp + 0x44]
mov dword [esp + 0x48], esi
mov dword [esp + 0x5c], eax
call fcn.00457cb0
mov esi, dword [esp + 0x48]
movzx edx, word [edi]
mov eax, dword [esp + 0x44]
mov ecx, esi
and ecx, 0x1f
shl eax, cl
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
add esi, edx
add ebx, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x64], eax
call fcn.00457cb0
add edi, 4
mov dword [esp + 0x68], edi
call fcn.00457cb0
cmp eax, 2
jg 0x45a2d5
mov edi, dword [esp + 0x28]
test edi, edi
je 0x45a2d5
lea edx, [esp + 0x38]
push edx
lea esi, [esp + 0x48]
dec edi
call fcn.00459d30
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
add esp, 4
push eax
mov eax, dword [esp + 0x14]
push ecx
push edx
mov edx, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x50]
sub esp, 0xc
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x60]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0xa4]
call fcn.00459f10
add esp, 0x24
cmp eax, 0xffffff88
ja 0x45a336
add dword [esp + 0x80], eax
mov ecx, esi
call fcn.00457cb0
cmp eax, 2
jle 0x45a261
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x50]
jne 0x45a19e
cmp dword [esp + 0x48], 0x20
jne 0x45a19e
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov esi, ecx
sub esi, eax
cmp eax, ecx
ja 0x45a19e
mov edi, dword [esp + 0x80]
lea edx, [esi + edi]
cmp edx, dword [esp + 0x18]
jbe 0x45a31f
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
cmp edi, eax
je 0x45a32e
push esi
push eax
push edi
call fcn.005e04c0
add esp, 0xc
mov eax, esi
sub eax, dword [esp + 0x7c]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret