Function at 0x45b3f0
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.0045ad80
add esp, 0x18
cmp eax, 0xffffff88
ja 0x45b656
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.004592a0
cmp eax, 0xffffff88
jbe 0x45b4cb
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.00459390
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.00459390
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.00459390
add edi, 4
mov dword [esp + 0x68], edi
call fcn.00459390
cmp eax, 2
jg 0x45b5f5
mov edi, dword [esp + 0x28]
test edi, edi
je 0x45b5f5
lea edx, [esp + 0x38]
push edx
lea esi, [esp + 0x48]
dec edi
call fcn.0045b050
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.0045b230
add esp, 0x24
cmp eax, 0xffffff88
ja 0x45b656
add dword [esp + 0x80], eax
mov ecx, esi
call fcn.00459390
cmp eax, 2
jle 0x45b581
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x50]
jne 0x45b4be
cmp dword [esp + 0x48], 0x20
jne 0x45b4be
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov esi, ecx
sub esi, eax
cmp eax, ecx
ja 0x45b4be
mov edi, dword [esp + 0x80]
lea edx, [esi + edi]
cmp edx, dword [esp + 0x18]
jbe 0x45b63f
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
cmp edi, eax
je 0x45b64e
push esi
push eax
push edi
call fcn.005e22d0
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