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

Disassembly:
sub esp, 0x34
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
push ebx
push ebp
shl ecx, 0x10
push esi
mov esi, dword [eax + 0x38]
mov dword [esp + 0x38], ecx
mov eax, dword [edx + 0xec]
shl eax, 0x10
mov dword [esp + 0x3c], eax
mov al, byte [0x634a51]
test al, al
push edi
mov dword [esp + 0x10], esi
je 0x45f788
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esi + 0x24]
call fcn.00456b90
add esp, 4
jmp 0x45f79c
lea edx, [esp + 0x3c]
push edx
mov eax, edx
push eax
lea ecx, [esi + 0x24]
push ecx
call fcn.0043c700
add esp, 0xc
mov ecx, dword [esi + 0x64]
mov bl, byte [esi + 2]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x14], ecx
mov cl, bl
and cl, 2
mov ebp, eax
mov edi, edx
je 0x45f7d0
mov ebp, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
add ebp, eax
add edi, edx
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x78]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
shl esi, 0x10
shl eax, 0x10
dec esi
dec eax
mov dword [esp + 0x28], eax
test byte [edx], 1
mov dword [esp + 0x34], esi
je 0x45fb19
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edx, dword [edx + 4]
sub eax, esi
test cl, cl
mov dword [esp + 0x24], edx
je 0x45f994
mov ebx, dword [esp + 0x54]
dec eax
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x45f855
test ecx, ecx
jle 0x45f855
mov esi, dword [esp + 0x1c]
dec esi
cmp eax, esi
jge 0x45f855
mov esi, dword [esp + 0x20]
dec esi
cmp ecx, esi
jl 0x45f8c8
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x4c], esi
jge 0x45f8c8
mov esi, dword [esp + 0x10]
test byte [esi + 2], 1
je 0x45f886
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x78]
push eax
mov ecx, esi
add ecx, 0x60
push ecx
push ebx
push edi
push ebp
mov ecx, edx
call fcn.0046bc40
jmp 0x45f890
push ebx
push ecx
push eax
mov ecx, edx
call fcn.0046b340
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x45f8a7
push 1
push ebx
push eax
call fcn.00459270
add esp, 0xc
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, esi
inc ecx
mov dword [esp + 0x4c], ecx
add ebx, 8
jmp 0x45f831
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x54], ebx
lea esi, [ebx + eax*8 - 8]
mov ebx, dword [esp + 0x10]
lea esp, [esp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x45f90c
test ecx, ecx
jle 0x45f90c
mov edx, dword [esp + 0x1c]
dec edx
cmp eax, edx
jge 0x45f90c
mov edx, dword [esp + 0x20]
dec edx
cmp ecx, edx
jl 0x45fb57
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x45fc9c
test byte [ebx + 2], 1
mov dword [esp + 0x38], esi
je 0x45f949
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
lea eax, [ebx + 0x60]
push eax
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.0046bc40
jmp 0x45f955
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.0046b340
dec dword [esp + 0x50]
mov eax, dword [ebx + 0x54]
sub esi, 8
test eax, eax
je 0x45f973
mov ecx, dword [esp + 0x38]
push 1
push ecx
push eax
call fcn.00459270
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x45f8e0
test bl, 1
je 0x45f9ab
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
dec esi
dec ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x54]
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x45f9e5
test ecx, ecx
jl 0x45f9e5
cmp eax, dword [esp + 0x1c]
jge 0x45f9e5
cmp ecx, dword [esp + 0x20]
jl 0x45fa52
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x50]
jge 0x45fa52
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
je 0x45fa10
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 0x78]
push ecx
push esi
push edi
push ebp
mov ecx, edx
call fcn.0046b4c0
jmp 0x45fa1a
push esi
push ecx
push eax
mov ecx, edx
call fcn.0046b340
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x45fa31
push 1
push esi
push eax
call fcn.00459270
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, ebx
inc ecx
mov dword [esp + 0x4c], ecx
add esi, 8
jmp 0x45f9c7
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x54], esi
lea esi, [esi + eax*8 - 8]
jmp 0x45fa70
mov ecx, dword [esp + 0x30]
mov eax, ebx
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x45fa94
test ecx, ecx
jl 0x45fa94
cmp eax, dword [esp + 0x1c]
jge 0x45fa94
cmp ecx, dword [esp + 0x20]
jl 0x45fb57
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x45fc9c
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
mov dword [esp + 0x38], esi
je 0x45facd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
push edx
push esi
push eax
push ebx
call fcn.0046b4c0
jmp 0x45fad9
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.0046b340
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x54]
sub esi, 8
test eax, eax
je 0x45fb00
mov edx, dword [esp + 0x38]
push 1
push edx
push eax
call fcn.00459270
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
sub ebx, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x45fa70
test ebp, ebp
jl 0x45fb21
cmp ebp, esi
jl 0x45fb36
mov eax, ebp
cdq
idiv esi
test ebp, ebp
jge 0x45fb2b
dec eax
imul eax, esi
sub ebp, eax
cmp ebp, esi
jne 0x45fb36
xor ebp, ebp
test edi, edi
mov ecx, dword [esp + 0x28]
jl 0x45fb42
cmp edi, ecx
jl 0x45fb57
mov eax, edi
cdq
idiv ecx
test edi, edi
jge 0x45fb4c
dec eax
imul eax, ecx
sub edi, eax
cmp edi, ecx
jne 0x45fb57
xor edi, edi
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp edx, esi
jge 0x45fc9c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
sub esi, edx
test ecx, ecx
jle 0x45fba4
cmp ebp, eax
jl 0x45fb86
lea ecx, [ecx]
sub ebp, eax
cmp ebp, eax
jge 0x45fb80
cmp ecx, 0x20000
jg 0x45fb99
mov edx, esi
imul edx, ecx
add edx, ebp
cmp edx, eax
jl 0x45fbd7
sub eax, ebp
lea eax, [eax + ecx - 1]
cdq
idiv ecx
jmp 0x45fbd1
jge 0x45fbd7
test ebp, ebp
jg 0x45fbb6
lea ebx, [ebx]
add ebp, eax
test ebp, ebp
jle 0x45fbb0
cmp ecx, 0xfffe0000
jl 0x45fbc7
mov eax, esi
imul eax, ecx
add eax, ebp
jns 0x45fbd7
mov eax, ebp
sub eax, ecx
dec eax
cdq
idiv ecx
neg eax
cmp esi, eax
jle 0x45fbd7
mov esi, eax
test ebx, ebx
jle 0x45fc0b
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x45fbe9
sub edi, eax
cmp edi, eax
jge 0x45fbe3
cmp ebx, 0x20000
jg 0x45fbfc
mov ecx, esi
imul ecx, ebx
add ecx, edi
cmp ecx, eax
jl 0x45fc3c
mov edx, dword [esp + 0x28]
sub edx, edi
lea eax, [edx + ebx - 1]
cdq
idiv ebx
jmp 0x45fc36
jge 0x45fc3c
test edi, edi
jg 0x45fc1b
mov eax, dword [esp + 0x28]
add edi, eax
test edi, edi
jle 0x45fc15
cmp ebx, 0xfffe0000
jl 0x45fc2c
mov eax, esi
imul eax, ebx
add eax, edi
jns 0x45fc3c
mov eax, edi
sub eax, ebx
dec eax
cdq
idiv ebx
neg eax
cmp esi, eax
jle 0x45fc3c
mov esi, eax
test esi, esi
jle 0x45fc9c
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
push ebx
push esi
lea ecx, [esp + 0x44]
push ecx
lea edx, [eax + 0x60]
push edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edi
call dword [eax + 0x58]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x54]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x45fc7f
push esi
push ebx
push eax
call fcn.00459270
add esp, 0xc
mov edx, dword [esp + 0x4c]
add edx, esi
lea ecx, [ebx + esi*8]
mov esi, dword [esp + 0x50]
cmp edx, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], ecx
jl 0x45fb67
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret