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

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x10c
cmp eax, 0x1e
push ebx
push ebp
push esi
mov esi, dword [esp + 0x11c]
push edi
mov edi, dword [esp + 0x124]
jg 0x6576a7
mov ecx, eax
mov eax, dword [esi + 0xdc]
inc ecx
test eax, eax
mov dword [esp + 0x12c], ecx
jne 0x65725f
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x656ffc
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x54]
push eax
mov eax, dword [esi + 0x50]
push ecx
mov ecx, dword [esi + 0x5c]
push edx
mov edx, dword [esi + 0x58]
push eax
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
push eax
push ecx
mov ecx, edi
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x656fee
mov dword [esi + 0xcc], 1
mov eax, dword [esi + 0xcc]
test eax, eax
je 0x65725f
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0x84]
mov ecx, dword [edi + 8]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x80]
mov dword [esp + 0x30], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
xor eax, eax
test edx, edx
jle 0x6570ef
fld dword [0x671614]
fsub dword [esp + 0x28]
fstp dword [esp + 0x18]
fld dword [0x671614]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x10]
fld dword [0x671614]
fsub dword [esp + 0x30]
fstp dword [esp + 0x1c]
fld dword [0x671614]
fsub dword [esp + 0x34]
fstp dword [esp + 0x20]
mov edx, dword [ecx + 8]
fld dword [esp + 0x2c]
fmul dword [edx + eax*4]
mov edx, dword [ecx + 0xc]
fld dword [esp + 0x10]
inc eax
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
faddp st(1)
fmul dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx]
fld dword [esp + 0x10]
fmul dword [edx + eax*4 - 4]
mov edx, dword [edi + 0x14]
faddp st(1)
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x34]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx]
fld dword [esp + 0x20]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 8]
faddp st(1)
fmul dword [esp + 0x1c]
fld dword [esp + 0x34]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 0xc]
fld dword [esp + 0x20]
fmul dword [edx + eax*4 - 4]
mov edx, dword [edi + 0x18]
faddp st(1)
fmul dword [esp + 0x30]
faddp st(1)
fstp dword [edx + eax*4 - 4]
cmp eax, dword [edi + 4]
jl 0x657066
fld dword [esi]
fsub dword [esi + 0x48]
fstp dword [esp + 0x20]
fld dword [esi + 4]
fsub dword [esi + 0x4c]
fstp dword [esp + 0x10]
mov edx, dword [esp + 0x10]
test edx, edx
jge 0x65711e
test edx, 0x7fffffff
je 0x65711e
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x30]
jmp 0x657122
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x20]
test ecx, ecx
jge 0x65713e
test ecx, 0x7fffffff
je 0x65713e
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x28]
jmp 0x657142
mov dword [esp + 0x28], ecx
fld dword [esp + 0x30]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 5
jp 0x657177
test ecx, 0x7fffffff
je 0x657255
fld dword [esi + 0x50]
fsub dword [esi + 0x48]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x28]
fld dword [esi + 0x58]
fsub dword [esi + 0x48]
fdiv dword [esp + 0x20]
jmp 0x65719b
test edx, 0x7fffffff
je 0x657255
fld dword [esi + 0x54]
fsub dword [esi + 0x4c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x28]
fld dword [esi + 0x5c]
fsub dword [esi + 0x4c]
fdiv dword [esp + 0x10]
mov ebp, dword [edi + 4]
fstp dword [esp + 0x30]
xor edx, edx
test ebp, ebp
jle 0x657255
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 0x18]
sub ebx, ecx
fld dword [ebx + ecx]
fsub dword [ecx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [0x6748e8]
fld dword [esp + 0x10]
fmul dword [esp + 0x28]
fsubp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x20]
test eax, eax
fadd st(0), st(0)
fdiv dword [0x6748e8]
fld dword [esp + 0x10]
fmul dword [esp + 0x30]
fsubp st(1)
fstp dword [esp + 0x10]
jge 0x65720a
test eax, 0x7fffffff
je 0x65720a
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x1c]
jmp 0x65720e
mov dword [esp + 0x1c], eax
fld dword [esp + 0x1c]
fcomp dword [edi + 0x10]
fnstsw ax
test ah, 0x41
je 0x65725f
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x657237
test eax, 0x7fffffff
je 0x657237
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x18]
jmp 0x65723b
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
fcomp dword [edi + 0x10]
fnstsw ax
test ah, 0x41
je 0x65725f
inc edx
add ecx, 4
cmp edx, ebp
jl 0x6571b4
mov dword [esi + 0xdc], 1
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x657521
mov eax, dword [esi + 0xc8]
test eax, eax
jne 0x6572bd
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x2c]
push eax
mov eax, dword [esi + 0x28]
push ecx
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x20]
push eax
mov eax, dword [esi + 0x1c]
push ecx
mov ecx, dword [esi + 0x18]
push edx
push eax
push ecx
mov ecx, edi
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x6572af
mov dword [esi + 0xc8], 1
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x657521
mov edx, dword [esi + 0x80]
mov eax, dword [esi + 0x8c]
mov ecx, dword [edi + 8]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x88]
mov dword [esp + 0x20], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
xor eax, eax
test edx, edx
jle 0x6573b0
fld dword [0x671614]
fsub dword [esp + 0x10]
fstp dword [esp + 0x28]
fld dword [0x671614]
fsub dword [esp + 0x14]
fstp dword [esp + 0x18]
fld dword [0x671614]
fsub dword [esp + 0x20]
fstp dword [esp + 0x30]
fld dword [0x671614]
fsub dword [esp + 0x24]
fstp dword [esp + 0x1c]
mov edx, dword [ecx]
fld dword [esp + 0x18]
fmul dword [edx + eax*4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x14]
inc eax
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 0xc]
faddp st(1)
fmul dword [esp + 0x28]
fld dword [esp + 0x18]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 8]
fld dword [esp + 0x14]
fmul dword [edx + eax*4 - 4]
mov edx, dword [edi + 0x14]
faddp st(1)
fmul dword [esp + 0x10]
faddp st(1)
fstp dword [edx + eax*4 - 4]
mov edx, dword [ecx]
fld dword [esp + 0x1c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x24]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 8]
faddp st(1)
fmul dword [esp + 0x30]
fld dword [esp + 0x24]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 0xc]
fld dword [esp + 0x1c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [edi + 0x18]
faddp st(1)
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [edx + eax*4 - 4]
cmp eax, dword [edi + 4]
jl 0x657327
fld dword [esi + 0x30]
fsub dword [esi + 0x18]
fstp dword [esp + 0x10]
fld dword [esi + 0x34]
fsub dword [esi + 0x1c]
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x20]
test edx, edx
jge 0x6573e0
test edx, 0x7fffffff
je 0x6573e0
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x18]
jmp 0x6573e4
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x657400
test ecx, 0x7fffffff
je 0x657400
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x1c]
jmp 0x657404
mov dword [esp + 0x1c], ecx
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x657439
test ecx, 0x7fffffff
je 0x657517
fld dword [esi + 0x20]
fsub dword [esi + 0x18]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x18]
fld dword [esi + 0x28]
fsub dword [esi + 0x18]
fdiv dword [esp + 0x10]
jmp 0x65745d
test edx, 0x7fffffff
je 0x657517
fld dword [esi + 0x24]
fsub dword [esi + 0x1c]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esi + 0x2c]
fsub dword [esi + 0x1c]
fdiv dword [esp + 0x20]
mov ebp, dword [edi + 4]
fstp dword [esp + 0x1c]
xor edx, edx
test ebp, ebp
jle 0x657517
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 0x18]
sub ebx, ecx
fld dword [ebx + ecx]
fsub dword [ecx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [0x6748e8]
fld dword [esp + 0x10]
fmul dword [esp + 0x18]
fsubp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x28]
test eax, eax
fadd st(0), st(0)
fdiv dword [0x6748e8]
fld dword [esp + 0x10]
fmul dword [esp + 0x1c]
fsubp st(1)
fstp dword [esp + 0x10]
jge 0x6574cc
test eax, 0x7fffffff
je 0x6574cc
fld dword [esp + 0x28]
fchs
fstp dword [esp + 0x30]
jmp 0x6574d0
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fcomp dword [edi + 0x10]
fnstsw ax
test ah, 0x41
je 0x657521
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x6574f9
test eax, 0x7fffffff
je 0x6574f9
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x20]
jmp 0x6574fd
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fcomp dword [edi + 0x10]
fnstsw ax
test ah, 0x41
je 0x657521
inc edx
add ecx, 4
cmp edx, ebp
jl 0x657476
mov dword [esi + 0xd8], 1
mov ecx, dword [esi + 0xdc]
test ecx, ecx
je 0x65757c
mov eax, dword [esi + 0xb0]
test eax, eax
jne 0x657553
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov dword [esi + 0x94], edx
mov edx, 1
mov dword [esi + 0x90], eax
mov dword [esi + 0xb0], edx
jmp 0x657558
mov edx, 1
mov eax, dword [esi + 0xbc]
test eax, eax
jne 0x657581
mov eax, dword [esi + 0x48]
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0xac], eax
mov dword [esi + 0xbc], edx
jmp 0x657581
mov edx, 1
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x65763b
mov ebx, dword [esi + 0xb4]
test ebx, ebx
jne 0x6575b1
mov ebx, dword [esi + 0x18]
mov dword [esi + 0x98], ebx
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x9c], ebx
mov dword [esi + 0xb4], edx
mov ebx, dword [esi + 0xb8]
test ebx, ebx
jne 0x6575d3
mov ebx, dword [esi + 0x30]
mov dword [esi + 0xa0], ebx
mov ebx, dword [esi + 0x34]
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xb8], edx
test eax, eax
je 0x65763b
test ecx, ecx
je 0x65763b
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x74]
push ecx
mov ecx, dword [esi + 0x70]
push edx
mov edx, dword [esi + 0x6c]
push eax
mov eax, dword [esi + 0x68]
push ecx
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [esi + 0x10]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x65763b
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x7c]
push eax
mov eax, dword [esi + 0x78]
push ecx
mov ecx, dword [esi + 0x64]
push edx
mov edx, dword [esi + 0x60]
push eax
mov eax, dword [esi + 0xc]
push ecx
mov ecx, dword [esi + 8]
push edx
push eax
push ecx
mov ecx, edi
call fcn.00655f00
add esp, 0x20
test eax, eax
jne 0x6576ee
lea eax, [esp + 0x38]
mov ecx, esi
call fcn.00656190
mov ebx, dword [esp + 0x128]
test ebx, ebx
je 0x65767a
mov ebp, dword [esp + 0x12c]
push ebp
push ebx
mov edx, eax
push edi
push edx
call fcn.00656f70
push ebp
push ebx
push edi
push esi
call fcn.00656f70
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret
mov ebx, dword [esp + 0x12c]
push ebx
push 0
push edi
push esi
call fcn.00656f70
push ebx
push 0
lea eax, [esp + 0x50]
push edi
push eax
call fcn.00656f70
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x18]
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x94], edx
mov edx, dword [esi + 0x30]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x9c], ecx
mov ecx, dword [esi + 0x48]
mov dword [esi + 0xa0], edx
mov edx, dword [esi + 0x4c]
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
lea eax, [esp + 0x18]
lea ebx, [esi + 0x90]
push eax
mov ecx, ebx
call fcn.00654900
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push eax
push edi
add esi, 0x80
push esi
push ebx
call fcn.006552d0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret