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

Disassembly:
sub esp, 0x10
cmp byte [edi + 0x42], 4
push ebx
push ebp
mov ebp, dword [edi]
mov eax, dword [ebp + 4]
push esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
jne 0x45363f
mov eax, dword [edi + 0x3c]
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
test byte [edi + 0x40], 0x20
je 0x45365b
mov ecx, dword [edi + 0x34]
push ecx
mov ecx, edi
call fcn.0044c000
add esp, 4
test eax, eax
jne 0x45382c
cmp dword [edi + 0x48], 0
mov ebx, dword [esp + 0x28]
jne 0x4536d9
mov edx, dword [esp + 0x24]
push ebx
push edx
xor esi, esi
mov ecx, ebp
call fcn.0044be80
add esp, 8
test byte [edi + 0x40], 2
je 0x4536ac
test ebx, ebx
jl 0x4536ac
jg 0x453689
cmp dword [esp + 0x24], esi
jbe 0x4536ac
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
sub eax, 1
mov ecx, ebx
sbb ecx, esi
cmp edx, eax
jne 0x4536ac
mov eax, dword [edi + 0x14]
cmp eax, ecx
jne 0x4536ac
mov dword [esp + 0x10], 0xffffffff
jmp 0x453704
cmp dword [esp + 0x3c], esi
jne 0x453704
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x10]
push ecx
push edx
push ebx
push eax
push 0
mov eax, edi
call fcn.00450100
add esp, 0x14
test eax, eax
je 0x453704
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
test esi, esi
jne 0x453704
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push ebx
push eax
push ecx
mov esi, edi
call fcn.0044c0b0
add esp, 0x14
test eax, eax
jne 0x45382c
movsx edx, byte [edi + 0x44]
mov ebp, dword [edi + edx*4 + 0x78]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x50]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push ebx
push edx
push eax
push esi
mov eax, ebp
mov dword [esp + 0x34], esi
call fcn.004512c0
add esp, 0x20
mov dword [esp + 0xc], eax
test eax, eax
jne 0x45382c
movsx ecx, byte [edi + 0x44]
movzx ebx, word [edi + ecx*2 + 0x50]
lea eax, [edi + ecx*2 + 0x50]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4537ce
mov esi, dword [ebp + 0x48]
call fcn.00448af0
test eax, eax
jne 0x45382c
mov edx, dword [ebp + 0x40]
mov ax, word [edx + ebx*2]
movzx edx, word [ebp + 0x14]
mov ch, al
mov cl, ah
movzx eax, cx
and eax, edx
add eax, dword [ebp + 0x38]
cmp byte [ebp + 5], 0
jne 0x453797
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.004510d0
add esp, 4
mov dword [esp + 0xc], eax
movzx eax, word [esp + 0x3c]
lea edx, [esp + 0xc]
push edx
push eax
push ebx
mov esi, ebp
call fcn.004515b0
mov eax, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x45382c
mov esi, dword [esp + 0x14]
jmp 0x4537e3
jge 0x4537e3
cmp word [ebp + 0x12], 0
jbe 0x4537e3
inc word [eax]
movsx ecx, byte [edi + 0x44]
movzx ebx, word [edi + ecx*2 + 0x50]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
push edx
push 0
push eax
push esi
push ebx
push ebp
xor eax, eax
call fcn.004516f0
mov eax, dword [esp + 0x24]
xor ecx, ecx
add esp, 0x18
mov word [edi + 0x24], cx
test eax, eax
jne 0x45382c
cmp byte [ebp + 1], al
je 0x45382c
and byte [edi + 0x40], 0xfd
push edi
call fcn.00453450
movsx edx, byte [edi + 0x44]
mov ecx, dword [edi + edx*4 + 0x78]
mov byte [ecx + 1], 0
add esp, 4
mov byte [edi + 0x42], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret