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

Disassembly:
sub esp, 0x10c
push ebx
mov ebx, dword [esp + 0x11c]
cmp ebx, 0x1e
push esi
mov esi, dword [esp + 0x118]
push edi
jg 0x658359
mov eax, dword [esi + 0xd0]
inc ebx
test eax, eax
mov dword [esp + 0x124], ebx
mov ebx, dword [esp + 0x120]
push ebp
jne 0x657f3b
mov eax, dword [esi + 0xc0]
test eax, eax
jne 0x657ccd
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
push eax
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0xc]
push edx
mov edx, dword [esi + 8]
push eax
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x657cbf
mov dword [esi + 0xc0], 1
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x657f3b
mov eax, dword [esi + 0x84]
mov edx, dword [esi + 0x80]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x34], eax
xor eax, eax
test edx, edx
jle 0x657dc9
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]
jmp 0x657d40
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]
faddp st(1)
fmul dword [esp + 0x28]
fld dword [esp + 0x10]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x2c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ebx + 0x14]
faddp st(1)
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [edx + eax*4 - 4]
mov edx, dword [ecx + 8]
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 [ecx]
faddp st(1)
fmul dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x34]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ebx + 0x18]
faddp st(1)
fmul dword [esp + 0x1c]
faddp st(1)
fstp dword [edx + eax*4 - 4]
cmp eax, dword [ebx + 4]
jl 0x657d40
fld dword [esi + 0x18]
fsub dword [esi]
fstp dword [esp + 0x20]
fld dword [esi + 0x1c]
fsub dword [esi + 4]
fstp dword [esp + 0x10]
mov edx, dword [esp + 0x10]
test edx, edx
jge 0x657df8
test edx, 0x7fffffff
je 0x657df8
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x30]
jmp 0x657dfc
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x20]
test ecx, ecx
jge 0x657e18
test ecx, 0x7fffffff
je 0x657e18
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x28]
jmp 0x657e1c
mov dword [esp + 0x28], ecx
fld dword [esp + 0x30]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 5
jp 0x657e4f
test ecx, 0x7fffffff
je 0x657f31
fld dword [esi + 8]
fsub dword [esi]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x28]
fld dword [esi + 0x10]
fsub dword [esi]
fdiv dword [esp + 0x20]
jmp 0x657e73
test edx, 0x7fffffff
je 0x657f31
fld dword [esi + 0xc]
fsub dword [esi + 4]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x28]
fld dword [esi + 0x14]
fsub dword [esi + 4]
fdiv dword [esp + 0x10]
mov ebp, dword [ebx + 4]
fstp dword [esp + 0x30]
xor edx, edx
test ebp, ebp
jle 0x657f31
mov ecx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
sub edi, ecx
lea esp, [esp]
fld dword [edi + 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 0x657ee6
test eax, 0x7fffffff
je 0x657ee6
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x1c]
jmp 0x657eea
mov dword [esp + 0x1c], eax
fld dword [esp + 0x1c]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
je 0x657f3b
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x657f13
test eax, 0x7fffffff
je 0x657f13
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x18]
jmp 0x657f17
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
je 0x657f3b
inc edx
add ecx, 4
cmp edx, ebp
jl 0x657e90
mov dword [esi + 0xd0], 1
mov eax, dword [esi + 0xd4]
test eax, eax
jne 0x6581fd
mov eax, dword [esi + 0xc4]
test eax, eax
jne 0x657f99
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x3c]
push eax
mov eax, dword [esi + 0x38]
push ecx
mov ecx, dword [esi + 0x44]
push edx
mov edx, dword [esi + 0x40]
push eax
mov eax, dword [esi + 0x4c]
push ecx
mov ecx, dword [esi + 0x48]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x657f8b
mov dword [esi + 0xc4], 1
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x6581fd
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x88]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x84]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x24], eax
xor eax, eax
test edx, edx
jle 0x65808c
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 + 4]
fld dword [esp + 0x14]
fmul dword [edx + eax*4]
mov edx, dword [ecx]
fld dword [esp + 0x18]
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 [ebx + 0x14]
faddp st(1)
fmul dword [esp + 0x10]
faddp st(1)
fstp dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
fld dword [esp + 0x24]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx]
fld dword [esp + 0x1c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 0xc]
faddp st(1)
fmul dword [esp + 0x30]
fld dword [esp + 0x1c]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ecx + 8]
fld dword [esp + 0x24]
fmul dword [edx + eax*4 - 4]
mov edx, dword [ebx + 0x18]
faddp st(1)
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [edx + eax*4 - 4]
cmp eax, dword [ebx + 4]
jl 0x658003
fld dword [esi + 0x48]
fsub dword [esi + 0x30]
fstp dword [esp + 0x10]
fld dword [esi + 0x4c]
fsub dword [esi + 0x34]
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x20]
test edx, edx
jge 0x6580bc
test edx, 0x7fffffff
je 0x6580bc
fld dword [esp + 0x20]
fchs
fstp dword [esp + 0x18]
jmp 0x6580c0
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x6580dc
test ecx, 0x7fffffff
je 0x6580dc
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x1c]
jmp 0x6580e0
mov dword [esp + 0x1c], ecx
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x658115
test ecx, 0x7fffffff
je 0x6581f3
fld dword [esi + 0x38]
fsub dword [esi + 0x30]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x18]
fld dword [esi + 0x40]
fsub dword [esi + 0x30]
fdiv dword [esp + 0x10]
jmp 0x658139
test edx, 0x7fffffff
je 0x6581f3
fld dword [esi + 0x3c]
fsub dword [esi + 0x34]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esi + 0x44]
fsub dword [esi + 0x34]
fdiv dword [esp + 0x20]
mov ebp, dword [ebx + 4]
fstp dword [esp + 0x1c]
xor edx, edx
test ebp, ebp
jle 0x6581f3
mov ecx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
sub edi, ecx
fld dword [edi + 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 0x6581a8
test eax, 0x7fffffff
je 0x6581a8
fld dword [esp + 0x28]
fchs
fstp dword [esp + 0x30]
jmp 0x6581ac
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
je 0x6581fd
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x6581d5
test eax, 0x7fffffff
je 0x6581d5
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x20]
jmp 0x6581d9
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
je 0x6581fd
inc edx
add ecx, 4
cmp edx, ebp
jl 0x658152
mov dword [esi + 0xd4], 1
mov ecx, dword [esi + 0xd0]
test ecx, ecx
pop ebp
je 0x658259
mov eax, dword [esi + 0xb0]
test eax, eax
jne 0x658230
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 0x658235
mov edx, 1
mov eax, dword [esi + 0xb4]
test eax, eax
jne 0x65825e
mov eax, dword [esi + 0x18]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x9c], eax
mov dword [esi + 0xb4], edx
jmp 0x65825e
mov edx, 1
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x6582ac
mov edi, dword [esi + 0xb8]
test edi, edi
jne 0x65828a
mov edi, dword [esi + 0x30]
mov dword [esi + 0xa0], edi
mov edi, dword [esi + 0x34]
mov dword [esi + 0xa4], edi
mov dword [esi + 0xb8], edx
mov edi, dword [esi + 0xbc]
test edi, edi
jne 0x6582ac
mov edi, dword [esi + 0x48]
mov dword [esi + 0xa8], edi
mov edi, dword [esi + 0x4c]
mov dword [esi + 0xac], edi
mov dword [esi + 0xbc], edx
test ecx, ecx
je 0x658328
test eax, eax
je 0x658328
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x64]
push ecx
mov ecx, dword [esi + 0x60]
push edx
mov edx, dword [esi + 0x6c]
push eax
mov eax, dword [esi + 0x68]
push ecx
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x20]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x658328
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x7c]
push eax
mov eax, dword [esi + 0x78]
push ecx
mov ecx, dword [esi + 0x74]
push edx
mov edx, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x2c]
push ecx
mov ecx, dword [esi + 0x28]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00655f00
add esp, 0x20
test eax, eax
je 0x658328
mov eax, dword [esp + 0x124]
mov ecx, esi
call fcn.00657730
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
lea eax, [esp + 0x34]
mov ecx, esi
call fcn.00656870
mov edi, dword [esp + 0x124]
push edi
mov edx, eax
push ebx
push edx
call fcn.00657c40
push edi
push ebx
push esi
call fcn.00657c40
add esp, 0x18
pop edi
pop esi
pop ebx
add esp, 0x10c
ret
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x18]
mov eax, dword [esi]
lea edi, [esi + 0x90]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x34]
mov dword [edi], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xa0], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0xa4], edx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x48]
lea edx, [esp + 0x14]
mov dword [esi + 0xac], ecx
push edx
mov ecx, edi
mov dword [esi + 0xa8], eax
call fcn.00654900
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x124]
push ebx
push ecx
push eax
push edx
add esi, 0x80
push esi
push edi
call fcn.006552d0
add esp, 0x1c
pop edi
pop esi
pop ebx
add esp, 0x10c
ret