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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
cmp ebp, 7
jle 0x45ec18
lea eax, [ebp*4]
mov ecx, ebp
mov dword [esp + 8], esi
sub ecx, esi
lea edx, [ebx + eax]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], eax
call fcn.0045bd20
mov ecx, edi
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edi
sub ecx, ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x28]
add edx, eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], edx
call fcn.0045bd20
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea edx, [edx + edx*2]
add edx, eax
cmp edx, 2
jg 0x45ec68
cmp edx, 0xffffffff
jge 0x45ee30
cmp edx, 0xfffffffc
je 0x45ecd0
jl 0x45ecbe
mov eax, esi
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], esi
sub eax, ebp
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.005867b0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [esp], eax
call fcn.005867b0
mov dword [esp + 0x48], 1
lea eax, [ebp + ebp]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
lea eax, [ebp*8]
add ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x40], ecx
cmp ebp, 8
je 0x45ed40
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], 0
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], ecx
add edx, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x44], ecx
call fcn.0045e2f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ebx
mov dword [esp + 0x14], 0
mov ebx, ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
sar ebx, 1
mov dword [esp + 0x18], ecx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
call fcn.0045e2f0
mov edx, esi
mov ecx, edi
sub edx, ebx
sub ecx, ebx
cmp esi, edi
mov eax, edx
cmovle eax, ecx
test eax, eax
mov eax, dword [esp + 0x4c]
je 0x45edc8
jle 0x45ee88
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0045e940
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], 0
mov eax, ebx
sub eax, esi
add esi, ebx
sub eax, edi
add esi, edi
mov edi, dword [esp + 0x24]
shl eax, 2
lea edx, [edi + esi*4]
mov dword [esp + 8], eax
mov dword [esp], edx
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00586450
mov ebx, eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x45ed18
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], eax
call fcn.00586600
sub ebx, eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add eax, esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00586450
add eax, ebx
je 0x45ec0d
add edi, ebp
lea edx, [esi + edi*4]
add dword [edx], eax
jb 0x45ec50
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp + edi]
add esi, ebp
mov dword [esp + 0x74], ebx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0045e190
add edx, 4
add dword [edx], 1
jne 0x45ec0d
add edx, 4
add dword [edx], 1
je 0x45ec50
jmp 0x45ec0d
sub edx, 3
cmp edx, 1
ja 0x45ecbe
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.005867b0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov dword [esp], eax
call fcn.005867b0
mov dword [esp + 0x48], 0
jmp 0x45ea69
mov eax, esi
mov dword [esp + 0xc], esi
sub eax, ebp
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.005867b0
mov ecx, ebp
mov dword [esp + 0xc], edi
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
jmp 0x45ecac
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00586450
add ebx, eax
jmp 0x45ebda
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [ecx + 0x40]
mov dword [esp], eax
call fcn.00462d90
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00462d90
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
lea eax, [ebx + 0x40]
mov dword [esp], eax
call fcn.0045e190
mov eax, 0x10
lea edx, [esi + edi + 0x10]
mov dword [esp + 4], 0
sub eax, esi
lea edx, [ebx + edx*4]
sub eax, edi
mov dword [esp], edx
shl eax, 2
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
jmp 0x45eb8e
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
add ebx, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0045e2f0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], 0
mov eax, edi
sub eax, ebx
add ebx, edi
mov edi, dword [esp + 0x24]
shl eax, 2
lea edx, [edi + ebx*4]
mov dword [esp + 8], eax
mov dword [esp], edx
call sub.msvcrt.dll_memset
jmp 0x45eb8e
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.005867b0
mov ecx, ebp
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], edi
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov dword [esp], eax
call fcn.005867b0
jmp 0x45ea61
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
cmp esi, 0xf
jg 0x45eeaa
cmp edi, 0xf
jle 0x45ef10
cmp esi, edi
mov edx, edi
cmovge edx, esi
jmp 0x45eec4
cmp esi, eax
je 0x45ef40
cmp edi, eax
je 0x45ef40
mov eax, ebx
shr eax, 0x1f
add eax, ebx
sar eax, 1
mov ebx, eax
cmp eax, edx
jge 0x45eeb8
mov eax, dword [esp + 0x44]
sub esi, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], eax
mov eax, edi
sub eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0045e940
jmp 0x45eb8e
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
call fcn.0045e190
jmp 0x45eb8e
sub edi, eax
sub esi, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x14], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [esp], eax
call fcn.0045e2f0
jmp 0x45eb8e