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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, ecx
push edi
movsx ebx, byte [esi + 0x44]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ebx
mov edi, dword [esi + ebx*4 + 0x78]
mov eax, dword [eax + 4]
movzx ecx, word [esi + ebx*2 + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x14]
movzx ecx, cx
and ecx, eax
add ecx, dword [edi + 0x38]
cmp byte [edi + 5], 0
mov dword [esp + 0x20], ecx
jne 0x45ee4e
and byte [esi + 0x40], 0xf1
xor eax, eax
cmp byte [esi + 0x42], 1
mov dword [esp + 0x14], 0
mov word [esi + 0x24], ax
jne 0x45ee3b
movzx ecx, word [esi + ebx*2 + 0x50]
test cx, cx
je 0x45ee3b
mov eax, dword [esi + ebx*4 + 0x78]
cmp byte [eax + 5], 0
je 0x45ee3b
lea eax, [ecx - 1]
mov word [esi + ebx*2 + 0x50], ax
jmp 0x45ee4e
lea edx, [esp + 0x14]
mov ecx, esi
call fcn.0045b5d0
test eax, eax
jne 0x45f035
mov al, byte [esi + 0x40]
test al, 0x20
je 0x45ee84
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x34]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x45ee7f
cmp ecx, esi
je 0x45ee78
test edx, edx
je 0x45ef44
cmp dword [ecx + 0x34], edx
je 0x45ef44
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x45ee63
and al, 0xdf
mov byte [esi + 0x40], al
cmp dword [esi + 0x48], 0
jne 0x45ee9e
push dword [esi + 0x14]
mov ecx, dword [esp + 0x14]
xor edx, edx
push dword [esi + 0x10]
call fcn.00456940
add esp, 8
mov ecx, dword [edi + 0x48]
call fcn.00452e30
test eax, eax
jne 0x45f035
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.0045c050
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, edi
lea eax, [esp + 0x14]
push eax
movzx eax, word [esp + 0x14]
push eax
call fcn.0045c580
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x45f035
cmp byte [edi + 5], al
jne 0x45efd0
movsx eax, byte [esi + 0x44]
mov edi, dword [esi + eax*4 + 0x78]
mov eax, dword [esi + ebx*4 + 0x7c]
mov dword [esp + 0x10], edi
movzx ecx, word [edi + 0x12]
mov eax, dword [eax + 0x54]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2 - 2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x14]
movzx ecx, cx
and ecx, eax
lea eax, [edx + 4]
add ecx, edx
mov dword [esp + 0x24], ecx
cmp ecx, eax
jae 0x45ef64
mov ecx, 0xf1c9
call fcn.004bb220
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x45ee7f
push esi
call fcn.00456b70
add esp, 4
test eax, eax
je 0x45ee84
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x4c]
push ecx
push edi
call eax
mov ecx, dword [esp + 0x18]
movzx ebx, ax
mov eax, dword [esp + 0x20]
mov ecx, dword [ecx + 0x48]
mov edi, dword [eax + 0x50]
call fcn.00452e30
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x2c]
lea eax, [ebx + 4]
push edi
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffc
push eax
call fcn.0045c6b0
add esp, 0x1c
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x14]
mov ecx, eax
push ebx
movzx edx, word [eax + 0x12]
dec edx
call fcn.0045c580
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x45f035
mov ebx, dword [esp + 0x2c]
mov ecx, esi
call fcn.0045e9c0
mov edi, eax
test edi, edi
jne 0x45f033
movsx ecx, byte [esi + 0x44]
cmp ecx, ebx
jle 0x45f02c
mov cl, byte [esi + 0x44]
movsx eax, cl
dec cl
mov eax, dword [esi + eax*4 + 0x78]
mov byte [esi + 0x44], cl
test eax, eax
je 0x45f017
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x18], 0x40
mov edi, dword [ecx + 0x10]
je 0x45f00b
call fcn.004513a0
jmp 0x45f010
call fcn.0044d2a0
mov ecx, edi
call fcn.00452430
movsx eax, byte [esi + 0x44]
cmp eax, ebx
jg 0x45efe5
mov ecx, esi
call fcn.0045e9c0
mov edi, eax
test edi, edi
jne 0x45f033
mov ecx, esi
call fcn.0045ac40
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret