Function at 0x45f6f0
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 [0x6348b1]
test al, al
push edi
mov dword [esp + 0x10], esi
je 0x45f738
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esi + 0x24]
call fcn.00456b40
add esp, 4
jmp 0x45f74c
lea edx, [esp + 0x3c]
push edx
mov eax, edx
push eax
lea ecx, [esi + 0x24]
push ecx
call fcn.0043c680
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 0x45f780
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 0x45fac9
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 0x45f944
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 0x45f805
test ecx, ecx
jle 0x45f805
mov esi, dword [esp + 0x1c]
dec esi
cmp eax, esi
jge 0x45f805
mov esi, dword [esp + 0x20]
dec esi
cmp ecx, esi
jl 0x45f878
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x4c], esi
jge 0x45f878
mov esi, dword [esp + 0x10]
test byte [esi + 2], 1
je 0x45f836
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.0046bc70
jmp 0x45f840
push ebx
push ecx
push eax
mov ecx, edx
call fcn.0046b370
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x45f857
push 1
push ebx
push eax
call fcn.00459220
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 0x45f7e1
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 0x45f8bc
test ecx, ecx
jle 0x45f8bc
mov edx, dword [esp + 0x1c]
dec edx
cmp eax, edx
jge 0x45f8bc
mov edx, dword [esp + 0x20]
dec edx
cmp ecx, edx
jl 0x45fb07
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x45fc4c
test byte [ebx + 2], 1
mov dword [esp + 0x38], esi
je 0x45f8f9
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.0046bc70
jmp 0x45f905
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.0046b370
dec dword [esp + 0x50]
mov eax, dword [ebx + 0x54]
sub esi, 8
test eax, eax
je 0x45f923
mov ecx, dword [esp + 0x38]
push 1
push ecx
push eax
call fcn.00459220
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 0x45f890
test bl, 1
je 0x45f95b
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 0x45f995
test ecx, ecx
jl 0x45f995
cmp eax, dword [esp + 0x1c]
jge 0x45f995
cmp ecx, dword [esp + 0x20]
jl 0x45fa02
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x50]
jge 0x45fa02
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
je 0x45f9c0
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.0046b4f0
jmp 0x45f9ca
push esi
push ecx
push eax
mov ecx, edx
call fcn.0046b370
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x45f9e1
push 1
push esi
push eax
call fcn.00459220
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 0x45f977
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 0x45fa20
mov ecx, dword [esp + 0x30]
mov eax, ebx
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x45fa44
test ecx, ecx
jl 0x45fa44
cmp eax, dword [esp + 0x1c]
jge 0x45fa44
cmp ecx, dword [esp + 0x20]
jl 0x45fb07
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x45fc4c
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
mov dword [esp + 0x38], esi
je 0x45fa7d
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.0046b4f0
jmp 0x45fa89
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.0046b370
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 0x45fab0
mov edx, dword [esp + 0x38]
push 1
push edx
push eax
call fcn.00459220
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 0x45fa20
test ebp, ebp
jl 0x45fad1
cmp ebp, esi
jl 0x45fae6
mov eax, ebp
cdq
idiv esi
test ebp, ebp
jge 0x45fadb
dec eax
imul eax, esi
sub ebp, eax
cmp ebp, esi
jne 0x45fae6
xor ebp, ebp
test edi, edi
mov ecx, dword [esp + 0x28]
jl 0x45faf2
cmp edi, ecx
jl 0x45fb07
mov eax, edi
cdq
idiv ecx
test edi, edi
jge 0x45fafc
dec eax
imul eax, ecx
sub edi, eax
cmp edi, ecx
jne 0x45fb07
xor edi, edi
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp edx, esi
jge 0x45fc4c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
sub esi, edx
test ecx, ecx
jle 0x45fb54
cmp ebp, eax
jl 0x45fb36
lea ecx, [ecx]
sub ebp, eax
cmp ebp, eax
jge 0x45fb30
cmp ecx, 0x20000
jg 0x45fb49
mov edx, esi
imul edx, ecx
add edx, ebp
cmp edx, eax
jl 0x45fb87
sub eax, ebp
lea eax, [eax + ecx - 1]
cdq
idiv ecx
jmp 0x45fb81
jge 0x45fb87
test ebp, ebp
jg 0x45fb66
lea ebx, [ebx]
add ebp, eax
test ebp, ebp
jle 0x45fb60
cmp ecx, 0xfffe0000
jl 0x45fb77
mov eax, esi
imul eax, ecx
add eax, ebp
jns 0x45fb87
mov eax, ebp
sub eax, ecx
dec eax
cdq
idiv ecx
neg eax
cmp esi, eax
jle 0x45fb87
mov esi, eax
test ebx, ebx
jle 0x45fbbb
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x45fb99
sub edi, eax
cmp edi, eax
jge 0x45fb93
cmp ebx, 0x20000
jg 0x45fbac
mov ecx, esi
imul ecx, ebx
add ecx, edi
cmp ecx, eax
jl 0x45fbec
mov edx, dword [esp + 0x28]
sub edx, edi
lea eax, [edx + ebx - 1]
cdq
idiv ebx
jmp 0x45fbe6
jge 0x45fbec
test edi, edi
jg 0x45fbcb
mov eax, dword [esp + 0x28]
add edi, eax
test edi, edi
jle 0x45fbc5
cmp ebx, 0xfffe0000
jl 0x45fbdc
mov eax, esi
imul eax, ebx
add eax, edi
jns 0x45fbec
mov eax, edi
sub eax, ebx
dec eax
cdq
idiv ebx
neg eax
cmp esi, eax
jle 0x45fbec
mov esi, eax
test esi, esi
jle 0x45fc4c
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 0x45fc2f
push esi
push ebx
push eax
call fcn.00459220
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 0x45fb17
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret