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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff80
mov ebp, dword [esp + 0x94]
mov eax, dword [ebp + 0x12c]
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x130]
mov dword [esp + 0x14], eax
je 0x41c602
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x1e0]
test ecx, ecx
je 0x41c602
mov al, byte [ecx + 0x50]
and al, 7
cmp al, 1
jne 0x41c602
mov ebx, dword [ecx]
call dword [ebx + 0x44]
test al, al
fldz
fldz
fldz
fldz
je 0x41ccf0
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1e0]
cmp word [edi + 0x64], 0
jl 0x41cd00
fld dword [0x5eca18]
xor edx, edx
or ecx, 0xffffffff
fstp st(4)
jmp 0x41c585
movsx ebx, ax
mov eax, dword [esp + 0xa0]
add eax, 0x34
mov esi, ebx
shl esi, 5
fld dword [esi + 0x8f675c]
fsub dword [eax + 8]
fstp st(1)
fld dword [esi + 0x8f6758]
fsub dword [eax + 4]
fstp st(2)
fld dword [esi + 0x8f6754]
fsub dword [eax]
fstp st(3)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(3)
fld st(2)
fstp dword [esp + 0x4c]
fld st(2)
fcomp st(4)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x41c584
fld st(2)
fstp st(4)
mov ecx, ebx
inc edx
cmp edx, 0xc
jge 0x41c598
mov ax, word [edi + edx*2 + 0x64]
test ax, ax
jge 0x41c510
mov eax, dword [esp + 0x9c]
push ecx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x50]
lea ebx, [esp + 0x4a]
mov esi, dword [esp + 0x9c]
push dword [0x5eca1c]
push eax
lea eax, [esp + 0x4c]
fcompp
fcompp
push ebp
mov dword [esp + 0x60], esi
push 1
push ebx
push eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x74], 0
shl eax, 5
mov ecx, 0x8f6754
push dword [esp + 0x74]
push dword [esp + 0x74]
push esi
push dword [esp + 0x3c]
push dword [eax + 0x8f675c]
push dword [eax + 0x8f6758]
push dword [eax + 0x8f6754]
push 0
jmp 0x41c670
mov eax, dword [esp + 0x9c]
lea ecx, [esp + 0x46]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x48]
push 0xffffffffffffffff
push dword [0x5eca1c]
push eax
lea eax, [esp + 0x4c]
push ebp
mov edx, dword [esp + 0xa8]
push 1
push ecx
push eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], edx
shl eax, 5
mov dword [esp + 0x80], 0
mov ecx, 0x8f6754
push dword [esp + 0x80]
push dword [esp + 0x80]
push edx
push dword [esp + 0x3c]
push dword [eax + 0x8f675c]
push dword [eax + 0x8f6758]
push dword [eax + 0x8f6754]
push 0
call fcn.0042b040
cmp word [esp + 0x46], 1
jne 0x41c6d0
mov edi, dword [esp + 0x14]
mov eax, 0x8f6754
shl edi, 5
add eax, edi
cmp dword [esp + 0x40], eax
je 0x41c6d0
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0
sub eax, 0x8f6754
cdq
and edx, 0x1f
add eax, edx
movsx edx, word [edi + 0x8f676c]
sar eax, 5
mov dword [esp + 8], eax
jmp 0x41c6bd
inc edx
inc dword [esp + 4]
movsx eax, word [edx*2 + 0x92aa9e]
cmp eax, dword [esp + 8]
jne 0x41c6b8
jmp 0x41c85b
fld dword [esp + 0x9c]
lea ecx, [ebp + 0x34]
push eax
fsub dword [ecx + 4]
fstp dword [esp]
fld dword [esp + 0x9c]
fsub dword [ecx]
push eax
fstp dword [esp]
call fcn.0048cc30
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc], 0
shl esi, 5
xor ebx, ebx
movsx eax, byte [esi + 0x8f676e]
fstp dword [esp + 0x34]
fld dword [0x5ec8dc]
mov dword [esp + 0x14], eax
cmp word [esp + 0x14], 0
movsx eax, word [esp + 0xc]
fstp dword [esp + 0x3c]
pop ecx
pop ecx
mov dword [esp + 8], eax
jle 0x41c85b
movsx ecx, word [esi + 0x8f676c]
movsx eax, bx
add ecx, eax
movsx edi, word [ecx*2 + 0x92aa9e]
cmp edi, dword [esp + 0x10]
jne 0x41c75a
cmp word [esp + 0xc], 1
jg 0x41c84f
mov edx, edi
push eax
shl edx, 5
fld dword [edx + 0x8f6758]
fsub dword [esi + 0x8f6758]
fstp dword [esp]
fld dword [edx + 0x8f6754]
fsub dword [esi + 0x8f6754]
push eax
fstp dword [esp]
call fcn.0048cc30
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fsub dword [esp + 0x34]
pop ecx
pop ecx
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fcomp dword [0x5ec9a8]
fnstsw ax
test ah, 0x45
jne 0x41c7c6
fld dword [esp + 0x30]
fsub dword [0x5ec9ac]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fcomp dword [0x5ec9a8]
fnstsw ax
test ah, 0x45
je 0x41c7a7
fldz
fld dword [esp + 0x30]
fcomp dword [0x5ec9cc]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x41c802
lea eax, [eax]
fld dword [esp + 0x30]
fadd dword [0x5ec9ac]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fcomp dword [0x5ec9cc]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x41c7e0
fld dword [esp + 0x30]
fcomp dword [0x5ec908]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x41c820
fld dword [esp + 0x30]
fchs
jmp 0x41c824
fld dword [esp + 0x30]
fstp st(1)
fcom dword [esp + 0x34]
fnstsw ax
test ah, 4
jne 0x41cd10
and ah, 0x45
test ah, 0x41
je 0x41cd10
fst dword [esp + 0x34]
fstp st(0)
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
inc ebx
cmp bx, word [esp + 0xc]
jl 0x41c734
mov eax, dword [ebp + 0x12c]
mov dword [ebp + 0x134], eax
mov eax, dword [ebp + 0x130]
mov dword [ebp + 0x12c], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x130], eax
mov eax, dword [ebp + 0x138]
add eax, dword [ebp + 0x13c]
mov dword [ebp + 0x138], eax
mov eax, dword [ebp + 0x140]
mov dword [ebp + 0x148], eax
mov eax, dword [ebp + 0x144]
mov dword [ebp + 0x140], eax
mov al, byte [ebp + 0x155]
mov byte [ebp + 0x154], al
mov al, byte [ebp + 0x156]
mov byte [ebp + 0x155], al
mov al, byte [ebp + 0x158]
mov byte [ebp + 0x157], al
mov eax, dword [esp + 0x14]
shl eax, 5
movsx ecx, word [eax + 0x8f676c]
movsx esi, word [esp + 4]
fldz
add ecx, esi
movsx eax, word [ecx*2 + 0x937302]
mov dword [ebp + 0x144], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x130]
jge 0x41c916
mov byte [ebp + 0x156], 0xff
mov eax, dword [ebp + 0x144]
lea eax, [eax + eax*2]
movsx ebx, byte [eax*8 + 0x91cfa6]
jmp 0x41c92e
mov byte [ebp + 0x156], 1
mov eax, dword [ebp + 0x144]
lea eax, [eax + eax*2]
movsx ebx, byte [eax*8 + 0x91cfa7]
mov al, byte [ebp + 0x155]
test bx, bx
movsx edx, al
mov dword [esp + 0x38], edx
mov ecx, dword [ebp + 0x140]
fild dword [esp + 0x38]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
fmul dword [ecx + 0x91cf9c]
movsx edx, al
fstp dword [esp + 0x1c]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmul dword [ecx + 0x91cfa0]
fstp dword [esp + 0x20]
mov al, byte [ebp + 0x156]
movsx edx, al
mov dword [esp + 0x38], edx
mov edi, dword [ebp + 0x144]
fild dword [esp + 0x38]
lea edi, [edi*8]
lea edi, [edi + edi*2]
fmul dword [edi + 0x91cf9c]
movsx edx, al
fstp dword [esp + 0x24]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmul dword [edi + 0x91cfa0]
fstp dword [esp + 0x28]
jge 0x41c9c4
mov al, byte [ebp + 0x157]
mov byte [ebp + 0x158], al
jmp 0x41cd40
fld dword [edi + 0x91cf98]
fsub dword [ecx + 0x91cf98]
fst st(1)
fmul st(0)
fld dword [edi + 0x91cf94]
fsub dword [ecx + 0x91cf94]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fcomp dword [0x5eca20]
fnstsw ax
test ah, 0x45
jne 0x41cd17
mov al, byte [ebp + 0x15a]
cmp al, 2
je 0x41cd20
cmp al, 4
je 0x41cd27
cmp al, 0xf
je 0x41cd30
cmp al, 0x11
je 0x41cd37
fstp st(0)
call fcn.005a41d0
movzx eax, ax
and eax, 0x600
jne 0x41ca5e
call fcn.005a41d0
cmp ax, 0x3fff
jae 0x41ca40
mov al, 1
jmp 0x41ca42
xor al, al
test al, al
je 0x41ca50
mov al, byte [ebp + 0x158]
inc al
jmp 0x41ca58
mov al, byte [ebp + 0x158]
dec al
mov byte [ebp + 0x158], al
movsx edx, bx
movsx eax, byte [ebp + 0x158]
dec edx
cmp eax, edx
jl 0x41ca6f
mov eax, edx
mov byte [ebp + 0x158], al
mov cl, byte [ebp + 0x158]
test cl, cl
jle 0x41ca84
movsx eax, cl
jmp 0x41ca86
xor eax, eax
fldz
fldz
mov byte [ebp + 0x158], al
mov al, byte [ebp + 0x165]
shr al, 3
and al, 1
je 0x41caa4
mov byte [ebp + 0x158], 0
mov eax, dword [ebp + 0x140]
lea eax, [eax*8]
lea eax, [eax + eax*2]
add eax, 0x8f6754
add eax, 0x26840
mov bl, byte [eax + 0x12]
test bl, bl
jne 0x41cae1
movsx eax, byte [eax + 0x13]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(2)
jmp 0x41cb08
cmp byte [eax + 0x13], 0
jne 0x41cb00
movsx eax, bl
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x41cb06
fld dword [0x5ec900]
fstp st(2)
movsx eax, byte [ebp + 0x157]
mov dword [esp + 0x38], eax
mov esi, dword [ebp + 0x144]
fild dword [esp + 0x38]
lea esi, [esi*8]
mov eax, 0x8f6754
lea esi, [esi + esi*2]
add eax, esi
fadd st(2)
fmul dword [0x5ec8e4]
add eax, 0x26840
mov dl, byte [eax + 0x12]
test dl, dl
fstp st(2)
jne 0x41cb60
movsx eax, byte [eax + 0x13]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(1)
jmp 0x41cb88
cmp byte [eax + 0x13], 0
jne 0x41cb80
movsx eax, dl
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x41cb86
fld dword [0x5ec900]
fstp st(1)
movsx eax, byte [ebp + 0x158]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fadd st(1)
fmul dword [0x5ec8e4]
fstp st(1)
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esi + 0x91cf94]
fstp dword [esp + 0x74]
fld dword [esp + 0x24]
fmul st(1)
fsubr dword [esi + 0x91cf98]
fstp dword [esp + 0x78]
mov edi, dword [ebp + 0x140]
lea edi, [edi*8]
lea edi, [edi + edi*2]
fld dword [esp + 0x1c]
fmul st(2)
fsubr dword [edi + 0x91cf98]
fstp st(1)
fld dword [esp + 0x20]
fmul st(2)
fadd dword [edi + 0x91cf94]
fstp dword [esp + 0x68]
fst dword [esp + 0x6c]
mov cl, byte [ebp + 0x156]
movsx eax, cl
mov dword [esp + 0x38], eax
mov ebx, dword [ebp + 0x144]
fild dword [esp + 0x38]
lea ebx, [ebx*8]
push eax
lea ebx, [ebx + ebx*2]
fmul dword [ebx + 0x91cfa0]
movsx eax, cl
fstp dword [esp]
mov dword [esp + 0x3c], eax
push eax
fild dword [esp + 0x40]
fmul dword [ebx + 0x91cf9c]
fstp dword [esp]
mov cl, byte [ebp + 0x155]
movsx eax, cl
mov dword [esp + 0x40], eax
mov esi, dword [ebp + 0x140]
fild dword [esp + 0x40]
lea esi, [esi*8]
push eax
lea esi, [esi + esi*2]
fmul dword [esi + 0x91cfa0]
movsx eax, cl
fstp dword [esp]
mov dword [esp + 0x44], eax
push eax
fild dword [esp + 0x48]
fmul dword [esi + 0x91cf9c]
fstp dword [esp]
fcompp
lea eax, [esp + 0x78]
lea edx, [esp + 0x84]
push edx
push eax
call fcn.00420410
fld dword [0x5ec90c]
fdiv dword [ebp + 0x160]
add esp, 0x18
fmulp st(1)
fnstcw word [esp + 0x18]
mov eax, dword [esp + 0x18]
or byte [esp + 0x19], 0xc
fldcw word [esp + 0x18]
mov dword [esp + 0x18], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x18]
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x13c], eax
mov eax, dword [ebp + 0x13c]
cmp eax, 0xa
jg 0x41ccdf
mov eax, 0xa
mov dword [ebp + 0x13c], eax
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fcompp
jmp 0x41c602
fcompp
fcompp
jmp 0x41c602
fstp st(0)
jmp 0x41c84f
fstp st(0)
jmp 0x41ca5e
fstp st(0)
jmp 0x41ca5e
fstp st(0)
jmp 0x41ca5e
fstp st(0)
jmp 0x41ca5e
fstp st(0)
jmp 0x41ca5e
fldz
jmp 0x41ca90