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

Disassembly:
sub esp, 0x90
push ebx
push ebp
push esi
mov esi, dword [esp + 0xa0]
mov eax, dword [esi + 0x40]
test al, 0x10
push edi
mov edi, ecx
mov dword [esp + 0x40], 0x3f800000
mov byte [esp + 0x1f], 0
mov byte [esp + 0x47], 0
mov byte [esp + 0x5b], 0
je 0x5486db
mov ecx, dword [edi + 0x40]
test cl, 0x20
jne 0x5486db
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 3
mov dword [esp + 0x68], 0x41200000
jne 0x5486f3
cmp dword [esi + 0x568], edi
jne 0x5486f3
mov byte [esp + 0x47], 1
jmp 0x5486f3
mov ecx, dword [edi + 0x40]
test cl, 1
mov dword [esp + 0x68], 0x40000000
jne 0x5486f3
mov dword [esp + 0x68], 0x3f800000
test cl, 0x10
je 0x54879b
mov al, byte [edi + 0x36]
and al, 7
cmp al, 3
jne 0x54876b
mov ecx, edi
call fcn.005df8f0
test al, al
je 0x54876b
mov al, byte [esi + 0x36]
mov cl, al
and cl, 7
cmp cl, 2
jne 0x54876b
shr al, 3
cmp al, 4
je 0x548730
cmp al, 5
je 0x548730
mov eax, dword [edi + 0x1c]
test ah, 0x10
je 0x54876b
fld dword [esi + 0x8c]
fsub dword [0x8631f0]
fld dword [0x858b50]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x548753
fstp st(0)
fld dword [0x858b50]
fmul dword [0x85a7d0]
fadd dword [0x858624]
fdivr dword [0x858624]
fstp dword [esp + 0x40]
jmp 0x548779
test byte [esi + 0x40], 0x20
jne 0x548779
mov dword [esp + 0x40], 0x41200000
mov dl, byte [edi + 0x36]
and dl, 7
cmp dl, 3
jne 0x5487dc
cmp dword [edi + 0x568], esi
jne 0x5487dc
mov byte [esp + 0x1f], 1
mov dword [esp + 0x40], 0x41200000
jmp 0x5487dc
mov cl, byte [edi + 0x36]
and cl, 7
cmp cl, 2
jne 0x5487c8
mov ecx, dword [edi + 0x4c8]
test ecx, ecx
je 0x5487c8
fld dword [ecx + 0x8c]
fadd dword [edi + 0x8c]
fdiv dword [edi + 0x8c]
fstp dword [esp + 0x40]
jmp 0x5487dc
test al, 1
mov dword [esp + 0x40], 0x40000000
jne 0x5487dc
mov dword [esp + 0x40], 0x3f800000
mov eax, dword [esi + 0x40]
test al, 4
mov bl, 0x40
je 0x5487e9
test al, 8
je 0x5487f7
mov ecx, dword [esi + 0xfc]
test ecx, ecx
je 0x548801
test bl, al
jne 0x548801
mov byte [esp + 0x5b], 1
mov byte [esp + 0x1f], 0
mov eax, dword [edi + 0x14]
lea edx, [edi + 0xa4]
push edx
push eax
lea ecx, [esp + 0x90]
push ecx
call fcn.0059c790
mov eax, dword [esi + 0x14]
lea edx, [esi + 0xa4]
push edx
push eax
lea ecx, [esp + 0xa8]
push ecx
call fcn.0059c790
mov al, byte [edi + 0x40]
add esp, 0x18
test bl, al
je 0x548874
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
test byte [esi + 0x40], bl
je 0x5488b2
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov al, byte [edi + 0x36]
mov ebp, dword [esp + 0xa8]
and al, 7
cmp al, 2
mov ecx, 0x100
jne 0x5488da
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 4
jne 0x5488da
test dword [esi + 0x140], ecx
jne 0x5488f1
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
jne 0x5488f8
cmp al, 4
jne 0x5488f8
test dword [edi + 0x140], ecx
je 0x5488f8
mov dword [ebp + 0x18], 0
mov eax, dword [esi + 0x1c]
test al, 4
mov ebx, dword [esp + 0xac]
jne 0x548911
test eax, 0x40000
je 0x548a98
mov al, byte [esp + 0x5b]
test al, al
jne 0x548a98
test byte [edi + 0x40], 0x10
je 0x548b76
fld dword [edi + 0x4c]
fmul dword [ebp + 0x18]
fld dword [edi + 0x48]
fmul dword [ebp + 0x14]
faddp st(1)
fld dword [ebp + 0x10]
fmul dword [edi + 0x44]
faddp st(1)
fst dword [esp + 0x24]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x548a75
mov al, byte [esi + 0x36]
and al, 7
cmp al, 4
je 0x54898d
test byte [esi + 0x40], 4
je 0x54897f
mov ecx, dword [esp + 0xac]
push ecx
push ebp
push esi
mov ecx, edi
call fcn.005435c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x10]
jmp 0x548a75
fld dword [esp + 0x24]
mov eax, dword [esp + 0xb0]
fmul dword [edi + 0x8c]
fchs
fst dword [ebx]
fstp dword [eax]
mov al, byte [esi + 0x40]
test al, 4
jne 0x548b5f
mov ecx, dword [esi + 0x160]
fld dword [ecx + 0x14]
fcomp dword [0x863c20]
fnstsw ax
test ah, 5
jp 0x548b5f
fld dword [ebx]
fcomp dword [ecx + 0x14]
fnstsw ax
test ah, 0x41
jne 0x548b5f
push esi
call fcn.0046a760
add esp, 4
test al, al
je 0x548a23
push 0
sub esp, 0xc
mov edx, esp
mov ecx, ebp
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov eax, dword [edi + 0x44]
mov dword [edx + 8], ecx
mov ecx, dword [edi + 0x48]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [edi + 0x4c]
mov dword [edx + 4], ecx
mov ecx, dword [ebx]
push ecx
push esi
mov dword [edx + 8], eax
call fcn.0071bc40
add esp, 0x24
jmp 0x548a75
test byte [esi + 0x40], 4
jne 0x548a75
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x10]
movzx eax, byte [0xb7cd74]
imul eax, eax, 0x190
mov ecx, dword [eax + 0xb7ced8]
lea eax, [eax + 0xb7ced8]
add ecx, 2
mov dword [eax], ecx
call fcn.00821b1e
cdq
mov ecx, 0x1e
idiv ecx
add edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fstp dword [esp]
push 0x7d
call fcn.0055c180
add esp, 8
mov eax, dword [esi + 0x1c]
test al, 4
jne 0x548e85
test eax, 0x40000
jne 0x548e85
test byte [esi + 0x40], 4
jne 0x548a98
mov ecx, esi
call fcn.00542800
mov eax, dword [edi + 0x40]
mov ecx, eax
shr ecx, 4
and ecx, 1
je 0x5492cc
mov edx, dword [esi + 0x40]
test dl, 0x10
je 0x5492cc
test al, 4
fld dword [edi + 0x4c]
fmul dword [ebp + 0x18]
lea ebx, [ebp + 0x10]
fld dword [edi + 0x48]
mov ecx, dword [edi + 0x8c]
fmul dword [ebx + 4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esp + 0x2c], ecx
faddp st(1)
mov byte [esp + 0x1f], 0
fld dword [ebx]
fmul dword [edi + 0x44]
faddp st(1)
fld dword [esi + 0x4c]
fmul dword [ebx + 8]
fld dword [esi + 0x48]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esi + 0x44]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x30]
jne 0x5490fe
test ah, 0x20
jne 0x5490fe
test dl, 4
jne 0x5490f4
test dh, 0x20
jne 0x5490f4
mov eax, dword [edi + 0x474]
test eax, eax
jns 0x5490cf
fld dword [esp + 0x28]
fmul st(1)
fmul dword [0x8cd7fc]
fld dword [esp + 0x2c]
fmul dword [esp + 0x30]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [0x8cd7fc]
fadd dword [esp + 0x2c]
fdivp st(1)
fstp dword [esp + 0x20]
jmp 0x549102
push ebx
push ebp
push esi
mov ecx, edi
call fcn.005435c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
mov eax, dword [edi + 0x14]
fld dword [ebp]
fsub dword [eax + 0x30]
add eax, 0x30
sub esp, 0xc
mov ebx, esp
fstp dword [esp + 0x1c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [ebp + 8]
mov ecx, dword [esp + 0x20]
fsub dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x5c], edx
mov dword [ebx + 8], edx
lea edx, [esp + 0x1c]
mov dword [esp + 0x58], ecx
push edx
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.00542ce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
test dword [edi + 0x40], 0x4000000
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
je 0x548c17
mov cl, byte [edi + 0x36]
and cl, 7
cmp cl, 2
jne 0x548c17
cmp byte [ebp + 0x20], 0x41
jne 0x548c17
mov edx, dword [edi]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call dword [edx + 0xc4]
push eax
lea ecx, [esp + 0x60]
call fcn.00411a00
fld dword [esp + 0x60]
lea ebx, [ebp + 0x10]
fmul dword [ebx + 4]
fld dword [esp + 0x64]
fmul dword [ebx + 8]
faddp st(1)
fld dword [esp + 0x5c]
fmul dword [ebx]
faddp st(1)
fst dword [esp + 0x24]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x548a75
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 4
je 0x548cb9
test byte [esi + 0x40], 4
jne 0x548c9b
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x10]
movzx eax, byte [0xb7cd74]
imul eax, eax, 0x190
mov ecx, dword [eax + 0xb7ced8]
lea eax, [eax + 0xb7ced8]
add ecx, 2
mov dword [eax], ecx
call fcn.00821b1e
cdq
mov ecx, 0x1e
idiv ecx
add edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x548a67
mov edx, dword [esp + 0xac]
push edx
push ebp
push esi
mov ecx, edi
call fcn.005435c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
fld dword [esp + 0x48]
push ebx
fsub dword [esp + 0x8c]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x84]
fstp dword [esp + 0x18]
push ecx
fld dword [esp + 0x58]
fsub dword [esp + 0x98]
fstp dword [esp + 0x20]
fld dword [esp + 0x5c]
fsub dword [esp + 0x9c]
fstp dword [esp + 0x24]
call fcn.0059c730
add esp, 0xc
mov ecx, eax
call fcn.00406da0
fdiv dword [edi + 0x90]
mov edx, dword [edi + 0x1c]
shr edx, 0xc
test dl, 1
mov edx, dword [esp + 0xac]
fld dword [0x858624]
fdiv dword [edi + 0x8c]
faddp st(1)
fdivr dword [0x858624]
fstp dword [esp + 0x54]
je 0x548d45
fld dword [esp + 0x54]
fmul dword [esp + 0x24]
fmul dword [0x858c1c]
fstp dword [edx]
jmp 0x548d64
fld dword [edi + 0x9c]
mov eax, dword [esp + 0xac]
fadd dword [0x858624]
fmul dword [esp + 0x54]
fmul dword [esp + 0x24]
fchs
fstp dword [eax]
mov ecx, dword [edx]
fld dword [0x858624]
mov eax, dword [esp + 0xb0]
mov dword [eax], ecx
mov cl, byte [edi + 0x36]
and cl, 7
cmp cl, 2
jne 0x548d91
cmp dword [edi + 0x594], 9
jne 0x548d91
fstp st(0)
fld dword [0x858b3c]
mov al, byte [esi + 0x144]
test al, al
je 0x548e94
fmul dword [edx]
fst dword [esp + 0x24]
fcomp dword [0x858ba4]
fnstsw ax
test ah, 0x41
jne 0x548e9f
mov edx, dword [esp + 0x24]
push 0x37
push edi
push ebx
push ebp
push edx
mov ecx, esi
call fcn.005a0d90
test byte [esi + 0x1c], 1
jne 0x548e98
test byte [edi + 0x40], 4
jne 0x548e46
mov eax, dword [esi + 0x160]
fld dword [eax + 0x18]
push ecx
mov ecx, dword [esp + 0xb0]
fadd st(0), st(0)
mov edx, dword [ecx]
lea eax, [esp + 0x14]
fstp dword [esp]
push edx
push ebx
push eax
call fcn.0040fec0
add esp, 0xc
push eax
lea ecx, [esp + 0x84]
push ecx
call fcn.004119d0
mov ecx, dword [esp + 0x54]
add esp, 0xc
push 1
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 8], ecx
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, edi
mov dword [edx + 8], eax
call fcn.00542b50
mov ecx, dword [esi + 0x160]
fld dword [ecx + 0x18]
mov edx, dword [esp + 0xac]
fdiv dword [esp + 0x54]
push 0
push 0
push 0x3f800000
push ecx
xor eax, eax
mov al, byte [ebp + 0x23]
xor ecx, ecx
mov cl, byte [ebp + 0x20]
fmul dword [edx]
fadd st(0), st(0)
fstp dword [esp]
push ebx
push ebp
push eax
push ecx
push esi
push edi
mov ecx, 0xb6bc90
call fcn.00506eb0
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
fstp st(0)
jmp 0x548e9f
mov edx, dword [esp + 0xac]
test byte [esi + 0x40], 4
jne 0x549091
mov ecx, dword [esi + 0x160]
fld dword [ecx + 0x14]
fcomp dword [0x863c20]
fnstsw ax
test ah, 5
jp 0x549091
fld dword [edx]
fcomp dword [ecx + 0x14]
fnstsw ax
test ah, 0x41
je 0x548eeb
mov eax, dword [edi + 0x1c]
mov edx, eax
shr edx, 4
test dl, 1
je 0x549091
shr eax, 0xc
test al, 1
je 0x549091
push esi
call fcn.0046a760
add esp, 4
test al, al
push 0
je 0x548f3e
sub esp, 0xc
mov ecx, esp
mov eax, ebp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
sub esp, 0xc
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
push eax
push esi
call fcn.0071bc40
add esp, 0x24
jmp 0x548f45
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x10]
movsx eax, word [esi + 0x22]
movzx ecx, word [0x8cd594]
cmp eax, ecx
jne 0x548f87
test byte [esi + 0x140], 0x40
jne 0x548f87
mov eax, dword [esi + 0x14]
test eax, eax
je 0x548f77
add eax, 0x30
push eax
mov ecx, 0xa9ae00
call fcn.004a0d70
jmp 0x548ff8
lea eax, [esi + 4]
push eax
mov ecx, 0xa9ae00
call fcn.004a0d70
jmp 0x548ff8
movzx edx, word [0x8cd548]
cmp eax, edx
je 0x548f9d
movzx ecx, word [0x8cd54c]
cmp eax, ecx
jne 0x548fe0
test byte [esi + 0x140], 0x40
jne 0x548fe0
mov eax, dword [esi + 0x14]
test eax, eax
lea ebx, [eax + 0x30]
jne 0x548fb3
lea ebx, [esi + 4]
call fcn.00821b1e
cdq
mov ecx, 0x64
idiv ecx
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
push edx
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ebx + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00458970
add esp, 0x10
jmp 0x548ff8
mov cl, byte [esi + 0x36]
and cl, 7
cmp cl, 4
jne 0x548fff
mov edx, dword [esi + 0x160]
mov al, byte [edx + 0x1f]
test al, al
jne 0x548fff
or dword [esi + 0x140], 0x40
test byte [edi + 0x40], 4
jne 0x548a75
mov eax, dword [esi + 0x160]
fld dword [eax + 0x14]
fcomp dword [0x858a48]
fnstsw ax
test ah, 0x41
jne 0x548a75
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx]
push edx
lea eax, [ebp + 0x10]
push eax
mov eax, dword [0x8cd7f8]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.0040fe90
add esp, 0xc
push eax
lea edx, [esp + 0x84]
push edx
call fcn.0040fec0
mov edx, dword [esp + 0x54]
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + 8], edx
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, edi
call fcn.00542b50
jmp 0x548a75
push esi
call fcn.0046a760
add esp, 4
test al, al
je 0x5490b1
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx]
push edx
push esi
call fcn.0071af70
add esp, 8
mov eax, dword [esp + 0xac]
push eax
push ebp
push esi
mov ecx, edi
call fcn.005435c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
fld dword [esp + 0x30]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x5490ea
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
jmp 0x549107
mov dword [esp + 0x20], 0
jmp 0x549107
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
jmp 0x549107
fst dword [esp + 0x20]
mov byte [esp + 0x1f], 1
fld dword [esp + 0x20]
fsubr st(1)
fst dword [esp + 0x54]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x5492bb
fld dword [esi + 0x9c]
mov ecx, dword [edi + 0x1c]
fadd dword [edi + 0x9c]
shr ecx, 0xc
test cl, 1
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
je 0x549149
fld dword [esp + 0x20]
jmp 0x549155
fld dword [esp + 0x24]
fmul dword [esp + 0x54]
fsubr dword [esp + 0x20]
mov edx, dword [esp + 0xac]
fsubrp st(1)
fmul dword [esp + 0x28]
fld st(0)
fstp dword [edx]
mov eax, dword [edi + 0x40]
test al, 4
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x10]
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x14]
fmul dword [ebx + 8]
fstp dword [esp + 0x18]
jne 0x5491de
test ah, 0x20
jne 0x5491de
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.005429f0
mov edx, dword [esp + 0xac]
fld dword [edx]
push 0
fdiv dword [esp + 0x2c]
push 0
push 0x3f800000
push ecx
xor eax, eax
mov al, byte [ebp + 0x23]
xor ecx, ecx
mov cl, byte [ebp + 0x20]
fstp dword [esp]
push ebx
push ebp
push eax
push ecx
push esi
push edi
mov ecx, 0xb6bc90
call fcn.00506eb0
mov al, byte [esp + 0x1f]
test al, al
je 0x5492ac
mov edx, dword [esi + 0x1c]
shr edx, 0xc
test dl, 1
je 0x5491fb
fld dword [esp + 0x20]
jmp 0x54920b
fld dword [esp + 0x30]
fsub dword [esp + 0x20]
fmul dword [esp + 0x24]
fsubr dword [esp + 0x20]
fsub dword [esp + 0x30]
mov eax, dword [esp + 0xb0]
fmul dword [esp + 0x2c]
fchs
fld st(0)
fstp dword [eax]
mov eax, dword [esi + 0x40]
test al, 4
fchs
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x10]
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x14]
fmul dword [ebx + 8]
fstp dword [esp + 0x18]
jne 0x5492ac
test ah, 0x20
jne 0x5492ac
mov ecx, dword [esi + 0x1c]
shr ecx, 5
test cl, 1
je 0x549258
mov ecx, esi
call fcn.00548320
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x24]
mov dword [edx + 4], ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.005429f0
mov ecx, dword [esp + 0xb0]
fld dword [ecx]
push 0
fdiv dword [esp + 0x30]
push 0
push 0x3f800000
push ecx
xor edx, edx
mov dl, byte [ebp + 0x20]
xor eax, eax
mov al, byte [ebp + 0x23]
mov ecx, 0xb6bc90
fstp dword [esp]
push ebx
push ebp
push edx
push eax
push edi
push esi
call fcn.00506eb0
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
fstp st(0)
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
test ecx, ecx
fld dword [ebp]
je 0x5496e9
mov eax, dword [esi + 0x14]
fsub dword [eax + 0x30]
add eax, 0x30
sub esp, 0xc
mov ebx, esp
fstp dword [esp + 0x1c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [ebp + 8]
mov ecx, dword [esp + 0x20]
fsub dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x1c]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edx
mov dword [ebx + 8], edx
call fcn.00542ce0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 8]
test dword [esi + 0x40], 0x4000000
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
je 0x549390
mov al, byte [esi + 0x36]
and al, 7
cmp al, 2
jne 0x549390
cmp byte [ebp + 0x23], 0x41
jne 0x549390
mov edx, dword [esi]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call dword [edx + 0xc4]
fld dword [esp + 0x34]
fadd dword [eax]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [eax + 4]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd dword [eax + 8]
jmp 0x549394
fld dword [esp + 0x3c]
fld dword [edi + 0x4c]
lea ebx, [ebp + 0x10]
fmul dword [ebx + 8]
mov al, byte [esi + 0x40]
test al, 0x20
fld dword [edi + 0x48]
fmul dword [ebx + 4]
push ebx
faddp st(1)
fld dword [edi + 0x44]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x70]
fmul dword [ebx + 8]
fld dword [esp + 0x3c]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esp + 0x38]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x6c]
fmul dword [edi + 0x8c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x74]
fsub dword [esp + 0x98]
fstp dword [esp + 0x14]
fld dword [esp + 0x78]
fsub dword [esp + 0x9c]
fstp dword [esp + 0x18]
fld dword [esp + 0x7c]
fsub dword [esp + 0xa0]
fstp dword [esp + 0x1c]
je 0x549443
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x90]
fdivp st(1)
jmp 0x54948b
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x90]
fdivp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x8c]
fdivr dword [0x858624]
faddp st(1)
fdivr dword [0x858624]
mov al, byte [esp + 0x67]
add esp, 0xc
test al, al
fstp dword [esp + 0x2c]
fstp st(0)
fstp st(0)
fstp st(0)
je 0x5494b0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
jmp 0x5494d0
fld dword [esp + 0x2c]
fmul dword [esp + 0x30]
fld dword [esp + 0x28]
fmul dword [esp + 0x6c]
faddp st(1)
fld dword [esp + 0x2c]
fadd dword [esp + 0x28]
fdivp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x6c]
fsub dword [esp + 0x20]
fst dword [esp + 0x54]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x548e85
fld dword [esi + 0x9c]
mov ecx, dword [edi + 0x1c]
fadd dword [edi + 0x9c]
shr ecx, 0xc
test cl, 1
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
je 0x549514
fld dword [esp + 0x20]
jmp 0x549520
fld dword [esp + 0x24]
fmul dword [esp + 0x54]
fsubr dword [esp + 0x20]
mov edx, dword [esi + 0x1c]
shr edx, 0xc
test dl, 1
je 0x549531
fld dword [esp + 0x20]
jmp 0x549541
fld dword [esp + 0x30]
fsub dword [esp + 0x20]
fmul dword [esp + 0x24]
fsubr dword [esp + 0x20]
mov eax, dword [esp + 0xac]
fxch st(1)
fsub dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
fmul dword [esp + 0x28]
fstp dword [eax]
fsub dword [esp + 0x30]
fmul dword [esp + 0x2c]
fchs
fld st(0)
fstp dword [ecx]
fld dword [eax]
fdiv dword [esp + 0x68]
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x5c], edx
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [ebx + 8]
mov dword [esp + 0x60], eax
test byte [edi + 0x40], 4
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
fdiv dword [esp + 0x40]
fchs
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x10]
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x14]
fmul dword [ebx + 8]
fstp dword [esp + 0x18]
jne 0x549614
fld dword [esp + 0x3c]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x5495dc
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x64]
mov al, byte [esp + 0x1f]
test al, al
je 0x5495f8
fld dword [esp + 0x5c]
fadd st(0), st(0)
fstp dword [esp + 0x5c]
fld dword [esp + 0x60]
fadd st(0), st(0)
fstp dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, edi
call fcn.005429f0
test byte [esi + 0x40], 4
jne 0x549672
mov al, byte [esp + 0x1f]
test al, al
jne 0x549672
mov ecx, dword [esi + 0x1c]
shr ecx, 5
test cl, 1
je 0x549634
mov ecx, esi
call fcn.00548320
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
push 1
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x88]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, esi
call fcn.00542b50
mov eax, dword [esp + 0xac]
fld dword [eax]
push 0
fdiv dword [esp + 0x2c]
push 0
push 0x3f800000
push ecx
xor ecx, ecx
mov cl, byte [ebp + 0x23]
xor edx, edx
mov dl, byte [ebp + 0x20]
fstp dword [esp]
push ebx
push ebp
push ecx
push edx
push esi
push edi
mov ecx, 0xb6bc90
call fcn.00506eb0
mov eax, dword [esp + 0xb0]
fld dword [eax]
push 0
fdiv dword [esp + 0x30]
push 0
push 0x3f800000
push ecx
xor ecx, ecx
mov cl, byte [ebp + 0x20]
xor edx, edx
mov dl, byte [ebp + 0x23]
fstp dword [esp]
push ebx
push ebp
push ecx
push edx
push edi
mov ecx, 0xb6bc90
push esi
call fcn.00506eb0
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
test byte [esi + 0x40], 0x10
mov eax, dword [edi + 0x14]
je 0x549b3d
fsub dword [eax + 0x30]
add eax, 0x30
sub esp, 0xc
mov ebx, esp
fstp dword [esp + 0x1c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [ebp + 8]
mov ecx, dword [esp + 0x20]
fsub dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov dword [ebx], eax
mov dword [esp + 0x54], eax
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [ebx + 4], ecx
lea eax, [esp + 0x1c]
mov dword [esp + 0x58], ecx
push eax
mov ecx, edi
mov dword [esp + 0x60], edx
mov dword [ebx + 8], edx
call fcn.00542ce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
test dword [edi + 0x40], 0x4000000
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
je 0x549791
mov cl, byte [edi + 0x36]
and cl, 7
cmp cl, 2
jne 0x549791
cmp byte [ebp + 0x20], 0x41
jne 0x549791
mov edx, dword [edi]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call dword [edx + 0xc4]
push eax
lea ecx, [esp + 0x60]
call fcn.00411a00
fld dword [esp + 0x60]
lea ebx, [ebp + 0x10]
fmul dword [ebx + 4]
mov al, byte [edi + 0x40]
test al, 0x20
fld dword [esp + 0x64]
fmul dword [ebx + 8]
push ebx
faddp st(1)
fld dword [esp + 0x60]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x70]
fld dword [esi + 0x4c]
fmul dword [ebx + 8]
fld dword [esi + 0x48]
fmul dword [ebx + 4]
faddp st(1)
fld dword [ebx]
fmul dword [esi + 0x44]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x4c]
fsub dword [esp + 0x8c]
fstp dword [esp + 0x14]
fld dword [esp + 0x50]
fsub dword [esp + 0x90]
fstp dword [esp + 0x18]
fld dword [esp + 0x54]
fsub dword [esp + 0x94]
fstp dword [esp + 0x1c]
je 0x549836
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x90]
fdivp st(1)
jmp 0x54987e
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x90]
fdivp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x8c]
fdivr dword [0x858624]
faddp st(1)
fdivr dword [0x858624]
add esp, 0xc
fstp dword [esp + 0x28]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x40]
fmul dword [esi + 0x8c]
fst dword [esp + 0x2c]
fmul dword [esp + 0x30]
fld dword [esp + 0x28]
fmul dword [esp + 0x6c]
faddp st(1)
fld dword [esp + 0x2c]
fadd dword [esp + 0x28]
fdivp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x6c]
fsub dword [esp + 0x20]
fst dword [esp + 0x54]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x548e85
fld dword [esi + 0x9c]
mov eax, dword [edi + 0x1c]
fadd dword [edi + 0x9c]
shr eax, 0xc
test al, 1
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
je 0x5498fe
fld dword [esp + 0x20]
jmp 0x54990a
fld dword [esp + 0x24]
fmul dword [esp + 0x54]
fsubr dword [esp + 0x20]
mov ecx, dword [esi + 0x1c]
shr ecx, 0xc
test cl, 1
je 0x54991b
fld dword [esp + 0x20]
jmp 0x54992b
fld dword [esp + 0x30]
fsub dword [esp + 0x20]
fmul dword [esp + 0x24]
fsubr dword [esp + 0x20]
mov eax, dword [esp + 0xac]
fxch st(1)
fsub dword [esp + 0x6c]
mov edx, dword [esp + 0xb0]
fmul dword [esp + 0x28]
fstp dword [eax]
fsub dword [esp + 0x30]
fmul dword [esp + 0x2c]
fchs
fld st(0)
fstp dword [edx]
fld dword [eax]
fdiv dword [esp + 0x68]
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x7c]
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x80]
fmul dword [ebx + 8]
fstp dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
fdiv dword [esp + 0x40]
fchs
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
fmul dword [ebx + 8]
mov dword [esp + 0x38], edx
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
test byte [edi + 0x40], 4
jne 0x549a1f
mov al, byte [esp + 0x47]
test al, al
jne 0x549a1f
fld dword [esp + 0x84]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x5499e2
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x48]
push 1
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x5c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x60]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x8c]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x9c]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, edi
call fcn.00542b50
test byte [esi + 0x40], 4
jne 0x549ac6
fld dword [esp + 0x18]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x549a79
fld dword [esp + 0x6c]
mov dword [esp + 0x3c], 0
fabs
fcomp qword [0x85a308]
fnstsw ax
test ah, 5
jp 0x549a79
fld dword [esp + 0x34]
mov dword [esp + 0x3c], 0
fmul dword [0x858b8c]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul dword [0x858b8c]
fstp dword [esp + 0x38]
mov al, byte [esp + 0x47]
test al, al
je 0x549a95
fld dword [esp + 0x34]
fadd st(0), st(0)
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd st(0), st(0)
fstp dword [esp + 0x38]
mov eax, dword [esi + 0x1c]
shr eax, 5
test al, 1
je 0x549aa6
mov ecx, esi
call fcn.00548320
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, esi
call fcn.005429f0
mov eax, dword [esp + 0xac]
fld dword [eax]
push 0
fdiv dword [esp + 0x2c]
push 0
push 0x3f800000
push ecx
xor ecx, ecx
mov cl, byte [ebp + 0x23]
xor edx, edx
mov dl, byte [ebp + 0x20]
fstp dword [esp]
push ebx
push ebp
push ecx
push edx
push esi
push edi
mov ecx, 0xb6bc90
call fcn.00506eb0
mov eax, dword [esp + 0xb0]
fld dword [eax]
push 0
fdiv dword [esp + 0x30]
push 0
push 0x3f800000
push ecx
xor ecx, ecx
mov cl, byte [ebp + 0x20]
xor edx, edx
mov dl, byte [ebp + 0x23]
fstp dword [esp]
push ebx
push ebp
push ecx
push edx
push edi
mov ecx, 0xb6bc90
push esi
call fcn.00506eb0
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x10
fsub dword [eax + 0x30]
add eax, 0x30
sub esp, 0xc
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [ebp + 8]
mov edx, dword [esp + 0x20]
fsub dword [eax + 8]
mov eax, dword [esi + 0x14]
add eax, 0x30
mov dword [esp + 0x54], ecx
fstp dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
fld dword [ebp]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ebx
fsub dword [eax]
fstp dword [esp + 0x1c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [ebp + 8]
fsub dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], eax
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [esp + 0x1c]
mov dword [eax + 4], edx
push ecx
mov ecx, edi
mov dword [eax + 8], ebx
call fcn.00542ce0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 8]
test dword [edi + 0x40], 0x4000000
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
je 0x549c17
mov al, byte [edi + 0x36]
and al, 7
cmp al, 2
jne 0x549c17
cmp byte [ebp + 0x20], 0x41
jne 0x549c17
mov edx, dword [edi]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call dword [edx + 0xc4]
push eax
lea ecx, [esp + 0x60]
call fcn.00411a00
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x84]
mov dword [edx + 4], ecx
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.00542ce0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 8]
test dword [esi + 0x40], 0x4000000
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
je 0x549c89
mov al, byte [esi + 0x36]
and al, 7
cmp al, 2
jne 0x549c89
cmp byte [ebp + 0x23], 0x41
jne 0x549c89
mov edx, dword [esi]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call dword [edx + 0xc4]
push eax
lea ecx, [esp + 0x38]
call fcn.00411a00
fld dword [esp + 0x60]
lea ebx, [ebp + 0x10]
fmul dword [ebx + 4]
mov al, byte [edi + 0x40]
test al, 0x20
fld dword [esp + 0x64]
fmul dword [ebx + 8]
push ebx
faddp st(1)
fld dword [esp + 0x60]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x70]
fld dword [esp + 0x40]
fmul dword [ebx + 8]
fld dword [esp + 0x3c]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esp + 0x38]
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x4c]
fsub dword [esp + 0x8c]
fstp dword [esp + 0x14]
fld dword [esp + 0x50]
fsub dword [esp + 0x90]
fstp dword [esp + 0x18]
fld dword [esp + 0x54]
fsub dword [esp + 0x94]
fstp dword [esp + 0x1c]
je 0x549d31
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x90]
fdivp st(1)
jmp 0x549d79
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x90]
fdivp st(1)
fld dword [esp + 0x74]
fmul dword [edi + 0x8c]
fdivr dword [0x858624]
faddp st(1)
fdivr dword [0x858624]
mov al, byte [esi + 0x40]
add esp, 0xc
test al, 0x20
push ebx
fstp dword [esp + 0x2c]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x74]
fsub dword [esp + 0x98]
fstp dword [esp + 0x14]
fld dword [esp + 0x78]
fsub dword [esp + 0x9c]
fstp dword [esp + 0x18]
fld dword [esp + 0x7c]
fsub dword [esp + 0xa0]
fstp dword [esp + 0x1c]
je 0x549df9
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x84]
push ecx
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x90]
fdivp st(1)
jmp 0x549e41
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x84]
push eax
call fcn.0059c730
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x90]
fdivp st(1)
fld dword [esp + 0x4c]
fmul dword [esi + 0x8c]
fdivr dword [0x858624]
faddp st(1)
fdivr dword [0x858624]
add esp, 0xc
fstp dword [esp + 0x2c]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x2c]
fmul dword [esp + 0x30]
fld dword [esp + 0x28]
fmul dword [esp + 0x6c]
faddp st(1)
fld dword [esp + 0x2c]
fadd dword [esp + 0x28]
fdivp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x6c]
fsub dword [esp + 0x20]
fst dword [esp + 0x54]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x548e85
fld dword [esi + 0x9c]
mov ecx, dword [edi + 0x1c]
fadd dword [edi + 0x9c]
shr ecx, 0xc
test cl, 1
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
je 0x549eb8
fld dword [esp + 0x20]
jmp 0x549ec4
fld dword [esp + 0x24]
fmul dword [esp + 0x54]
fsubr dword [esp + 0x20]
mov edx, dword [esi + 0x1c]
shr edx, 0xc
test dl, 1
je 0x549ed5
fld dword [esp + 0x20]
jmp 0x549ee5
fld dword [esp + 0x30]
fsub dword [esp + 0x20]
fmul dword [esp + 0x24]
fsubr dword [esp + 0x20]
mov eax, dword [esp + 0xac]
fxch st(1)
fsub dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
fmul dword [esp + 0x28]
fstp dword [eax]
fsub dword [esp + 0x30]
fmul dword [esp + 0x2c]
fchs
fld st(0)
fstp dword [ecx]
fld dword [eax]
fdiv dword [esp + 0x68]
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fmul dword [ebx + 8]
mov dword [esp + 0x60], eax
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fdiv dword [esp + 0x40]
mov dword [esp + 0x64], ecx
fchs
fld st(0)
fmul dword [ebx]
fstp dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], edx
fld st(0)
fmul dword [ebx + 4]
fstp dword [esp + 0x80]
mov eax, dword [esp + 0x80]
fmul dword [ebx + 8]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x3c], ecx
mov cl, byte [edi + 0x36]
mov dl, cl
and dl, 7
cmp dl, 2
jne 0x54a067
mov eax, dword [edi + 0x1c]
shr eax, 0xc
test al, 1
jne 0x54a067
test byte [edi + 0x40], 4
jne 0x54a067
fld dword [ebp + 0x18]
fcomp dword [0x858cb0]
fnstsw ax
test ah, 5
jp 0x549fcc
fld dword [esp + 0x18]
fmul dword [0x858c24]
fstp dword [esp + 0x64]
test cl, 0xf8
jne 0x549ffb
fld dword [esp + 0x48]
fmul dword [0x858c98]
fstp dword [esp + 0x48]
fld dword [esp + 0x4c]
fmul dword [0x858c98]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fmul dword [0x858c98]
fstp dword [esp + 0x50]
mov al, byte [0xb7cd72]
test al, al
je 0x54a067
fld dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
fmul dword [0x858ee4]
mov eax, dword [esp + 0x4c]
sub esp, 0xc
mov ecx, esp
fstp dword [esp + 0x1c]
mov dword [ecx], edx
fld dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
fmul dword [0x858ee4]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x1c]
fstp dword [esp + 0x20]
fld dword [esp + 0x70]
mov edx, dword [esp + 0x20]
fmul dword [0x858ee4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.00543220
mov cl, byte [esi + 0x36]
mov dl, cl
and dl, 7
cmp dl, 2
jne 0x54a155
mov eax, dword [esi + 0x1c]
shr eax, 0xc
test al, 1
jne 0x54a155
test byte [esi + 0x40], 4
jne 0x54a155
fld dword [ebp + 0x18]
fmul dword [0x858c1c]
fcomp dword [0x858cb0]
fnstsw ax
test ah, 5
jp 0x54a0b7
fld dword [esp + 0x84]
fmul dword [0x858c24]
fstp dword [esp + 0x3c]
test cl, 0xf8
jne 0x54a0e6
fld dword [esp + 0x70]
fmul dword [0x858c98]
fstp dword [esp + 0x70]
fld dword [esp + 0x74]
fmul dword [0x858c98]
fstp dword [esp + 0x74]
fld dword [esp + 0x78]
fmul dword [0x858c98]
fstp dword [esp + 0x78]
mov al, byte [0xb7cd72]
test al, al
je 0x54a155
fld dword [esp + 0x34]
mov edx, dword [esp + 0x70]
fmul dword [0x858ee4]
mov eax, dword [esp + 0x74]
sub esp, 0xc
mov ecx, esp
fstp dword [esp + 0x1c]
mov dword [ecx], edx
fld dword [esp + 0x44]
mov edx, dword [esp + 0x84]
fmul dword [0x858ee4]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x1c]
fstp dword [esp + 0x20]
fld dword [esp + 0x48]
mov edx, dword [esp + 0x20]
fmul dword [0x858ee4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.00543220
mov al, byte [0x969166]
test al, al
je 0x54a1ab
push 0
push 0xffffffffffffffff
call fcn.0056e0d0
add esp, 8
cmp eax, edi
jne 0x54a185
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
jne 0x54a185
cmp byte [esi + 0x4a4], dl
je 0x54a185
and dword [esi + 0x40], 0xfffffffd
push 0
push 0xffffffffffffffff
call fcn.0056e0d0
add esp, 8
cmp eax, esi
jne 0x54a1ab
mov al, byte [edi + 0x36]
and al, 7
cmp al, 2
jne 0x54a1ab
cmp byte [edi + 0x4a4], 2
je 0x54a1ab
and dword [edi + 0x40], 0xfffffffd
test byte [edi + 0x40], 4
jne 0x54a1ef
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.00542b50
test byte [esi + 0x40], 4
jne 0x54a245
mov edx, dword [esi + 0x1c]
shr edx, 5
test dl, 1
je 0x54a207
mov ecx, esi
call fcn.00548320
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push 1
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 4], ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.00542b50
mov ecx, dword [esp + 0xac]
fld dword [ecx]
push 0
fdiv dword [esp + 0x2c]
push 0
push 0x3f800000
push ecx
xor edx, edx
mov dl, byte [ebp + 0x23]
xor eax, eax
mov al, byte [ebp + 0x20]
mov ecx, 0xb6bc90
fstp dword [esp]
push ebx
push ebp
push edx
push eax
push esi
push edi
call fcn.00506eb0
mov ecx, dword [esp + 0xb0]
fld dword [ecx]
push 0
fdiv dword [esp + 0x30]
push 0
push 0x3f800000
push ecx
xor edx, edx
mov dl, byte [ebp + 0x20]
xor eax, eax
mov al, byte [ebp + 0x23]
mov ecx, 0xb6bc90
fstp dword [esp]
push ebx
push ebp
push edx
push eax
push edi
push esi
call fcn.00506eb0
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x90
ret 0x10