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

Disassembly:
sub esp, 0x10
push esi
mov esi, ecx
mov al, byte [esi + 0x169]
cmp al, 2
je 0x416624
cmp al, 3
jne 0x41663d
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x9c]
test eax, eax
je 0x41663d
xor eax, eax
pop esi
add esp, 0x10
ret 8
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x416654
cmp dword [esi + 0x30], 0xffffffff
je 0x416654
xor eax, eax
pop esi
add esp, 0x10
ret 8
mov eax, dword [esi + 0xa0]
push ebx
push ebp
push edi
test eax, eax
mov byte [esp + 0x24], 0
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
jle 0x416788
mov dword [esp + 0x18], 0
mov ebx, 1
mov eax, dword [esi + 0xa8]
lea edx, [ebx - 1]
lea ecx, [eax - 1]
cmp edx, ecx
jle 0x416706
cmp ebx, eax
jl 0x4166aa
lea ebp, [eax + 0x20]
cmp ebp, ebx
jg 0x4166ac
mov ebp, ebx
lea edx, [ebp*4]
push edx
call fcn.005faa3d
mov edi, eax
add esp, 4
test edi, edi
je 0x416706
mov ecx, dword [esi + 0xa8]
xor eax, eax
test ecx, ecx
jle 0x4166eb
cmp eax, ebp
jge 0x4166eb
mov ecx, dword [esi + 0x9c]
inc eax
mov edx, dword [ecx + eax*4 - 4]
mov dword [edi + eax*4 - 4], edx
mov ecx, dword [esi + 0xa8]
cmp eax, ecx
jl 0x4166ce
mov eax, dword [esi + 0x9c]
push eax
call fcn.005faa32
add esp, 4
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa8], ebp
mov ecx, dword [esi + 0x9c]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx]
mov ecx, dword [esi + 4]
push eax
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0x8c]
call fcn.005ebae0
test eax, eax
je 0x416767
mov ecx, dword [esi + 4]
fld dword [eax + 0x38]
fsub dword [ecx + 0x38]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [eax + 0x3c]
fsub dword [ecx + 0x3c]
mov ecx, dword [eax + 8]
fadd dword [esp + 0x14]
cmp word [ecx + 0x16], 0x16
fstp dword [esp + 0x14]
jne 0x416767
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x24], 1
cmp ecx, 0xffffffff
jne 0x416767
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0xa0]
inc ebx
add edx, 4
mov dword [esp + 0x18], edx
lea eax, [ebx - 1]
cmp eax, ecx
jl 0x41668f
mov eax, ecx
test eax, eax
mov ebx, dword [esp + 0x28]
jne 0x4167c8
mov eax, dword [esi + 4]
cmp ebx, dword [eax + 4]
je 0x4167c8
mov ecx, dword [eax + 0xc]
push ebx
mov ecx, dword [ecx + 0x8c]
call fcn.005ebae0
test eax, eax
je 0x4167c8
mov ecx, dword [esi + 4]
fld dword [eax + 0x38]
fsub dword [ecx + 0x38]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [eax + 0x3c]
fsub dword [ecx + 0x3c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
mov eax, dword [esi + 4]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movsx edi, word [edx + 0x16]
call fcn.004ab260
cmp eax, 1
jne 0x416948
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x118]
fcomp dword [0x61b584]
fnstsw ax
test ah, 0x41
jne 0x416948
cmp edi, 0x15
je 0x416948
cmp edi, 2
je 0x416948
cmp edi, 0x14
je 0x416948
cmp edi, 0x16
je 0x416948
cmp edi, 0x35
je 0x416948
cmp edi, 3
je 0x416948
cmp edi, 0x34
je 0x416948
cmp edi, 0x1b
je 0x416948
cmp edi, 0x27
je 0x416948
cmp edi, 0x36
je 0x416948
cmp byte [esp + 0x24], 1
jne 0x416948
cmp ebx, 0xffffffff
jne 0x416948
mov eax, dword [esi + 4]
mov edx, dword [esi]
push 1
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x20]
mov eax, dword [0x771074]
xor ebx, ebx
test eax, eax
jle 0x416948
mov ecx, dword [0x771088]
mov edx, dword [esi + 4]
mov eax, dword [ecx + ebx*8]
mov ecx, dword [edx + 4]
cmp ecx, eax
je 0x41693a
push eax
mov ecx, esi
call fcn.00419790
mov edi, eax
test edi, edi
je 0x41693a
mov eax, dword [edi + 8]
mov ecx, edi
movsx ebp, word [eax + 0x16]
call fcn.0052c570
test eax, eax
je 0x41693a
cmp byte [edi + 0x48], 2
ja 0x41693a
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x118]
fcomp dword [0x61c9a0]
fnstsw ax
test ah, 1
jne 0x41693a
cmp ebp, 3
je 0x41693a
cmp ebp, 0x34
je 0x41693a
cmp ebp, 0x1b
je 0x41693a
cmp ebp, 0x27
je 0x41693a
cmp ebp, 0x36
je 0x41693a
mov ecx, edi
call fcn.0052c570
mov ecx, eax
call fcn.005c0b30
cmp eax, 0xffffffff
jne 0x41693a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1e0]
test al, al
jne 0x41693a
mov ecx, edi
call fcn.0052c570
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
push ecx
push 1
mov ecx, eax
call dword [edx + 0xa0]
mov eax, dword [0x771074]
inc ebx
cmp ebx, eax
jl 0x416890
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
call dword [edx + 0x118]
mov eax, dword [esi + 4]
fadd st(0), st(0)
mov ecx, dword [eax + 0xc]
fstp dword [esp + 0x24]
call fcn.004ab260
pop edi
pop ebp
cmp eax, 1
pop ebx
jne 0x416981
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 8]
cmp word [edx + 0x16], 0x14
jne 0x416981
mov dword [esp + 0x18], 0x41200000
fld dword [esp + 8]
fmul dword [esp + 8]
fld dword [esp + 4]
fmul dword [esp + 4]
faddp st(1)
fsqrt
fcom dword [0x61c9a0]
fnstsw ax
test ah, 1
je 0x4169ee
fstp st(0)
call fcn.005faa7d
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [0x61c9b0]
fsub dword [0x61b598]
fstp dword [esp + 4]
call fcn.005faa7d
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [0x61c9b0]
fsub dword [0x61b598]
fst dword [esp + 8]
fmul dword [esp + 8]
fld dword [esp + 4]
fmul dword [esp + 4]
faddp st(1)
fsqrt
fld dword [esp + 4]
fdiv st(1)
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xc]
mov edx, dword [eax + 0x9c]
test edx, edx
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [esp + 0x18]
fchs
fadd dword [ecx + 0x38]
fstp dword [esp + 0x1c]
fld dword [esp + 8]
fdiv st(1)
fstp dword [esp + 0xc]
fstp st(0)
fld dword [esp + 0xc]
fmul dword [esp + 0x18]
fchs
fadd dword [ecx + 0x3c]
fstp dword [esp + 0x18]
je 0x416a9e
cmp byte [esi + 0x169], 1
jne 0x416a9e
cmp dword [ecx + 0x78], 0xffffffff
jne 0x416a9e
fld dword [esi + 0x16c]
fsub dword [esp + 0x1c]
fld dword [esi + 0x170]
fsub dword [esp + 0x18]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x61b5a0]
fnstsw ax
test ah, 0x41
jne 0x416a9e
fld dword [esp + 0x10]
fmul dword [0x61c9ac]
fadd dword [esi + 0x16c]
fstp dword [esp + 0x1c]
fld dword [esp + 0xc]
fmul dword [0x61c9ac]
fadd dword [esi + 0x170]
fstp dword [esp + 0x18]
mov eax, dword [ecx + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, dword [esi]
push 1
push eax
mov eax, dword [esp + 0x24]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x98]
pop esi
add esp, 0x10
ret 8