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

Disassembly:
mov eax, 0xafa0
call fcn.00623680
push ebx
push ebp
mov ebp, dword [esp + 0xafac]
xor eax, eax
mov ax, word [ebp + 4]
push esi
push edi
mov edi, dword [0x690510]
mov dword [esp + 0x48], 0
mov dword [esp + 0x70], 0
mov word [ebp + 0xa0], 0
mov ebx, eax
shr ebx, 9
and bl, 1
test al, 0x10
mov dword [esp + 0x44], eax
mov byte [esp + 0x5f], bl
je 0x55ab15
lea esi, [ebp + 0x14]
lea edi, [esp + 0x24]
lea ebx, [esp + 0x14]
call fcn.0055a890
fld dword [esp + 0x14]
fmul dword [ebp + 0x40]
lea ecx, [esp + 0x24]
fld dword [esi]
fmul dword [ebp + 0x3c]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [ebp + 0x44]
faddp st(1)
fld dword [ebp + 0x18]
fmul dword [ebp + 0x3c]
fld dword [esp + 0x18]
fmul dword [ebp + 0x40]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [ebp + 0x44]
faddp st(1)
fld dword [ebp + 0x1c]
fmul dword [ebp + 0x3c]
fld dword [esp + 0x1c]
fmul dword [ebp + 0x40]
faddp st(1)
fld dword [esp + 0x2c]
fmul dword [ebp + 0x44]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [0x66c410]
fsub dword [ebp + 0x48]
fst dword [esp + 0x44]
fmul st(2)
fstp dword [esp + 0x14]
fld dword [esp + 0x44]
fmul st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0x44]
fmul dword [esp + 0x1c]
fld dword [esp + 0x14]
fsub dword [ebp + 0x2c]
fstp dword [esp + 0x14]
mov esi, dword [esp + 0x14]
fxch st(1)
mov dword [esp + 0x24], esi
fsub dword [ebp + 0x30]
fstp dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x28], edi
fsub dword [ebp + 0x34]
fstp dword [esp + 0x1c]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebx
call fcn.00401990
fcomp dword [ebp + 0x4c]
fnstsw ax
test ah, 0x41
jne 0x55aac5
fld dword [ebp + 0x4c]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x18]
fmul dword [esp + 0x2c]
jmp 0x55aad5
mov dword [esp + 0x1c], ebx
fld dword [esp + 0x1c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
fld dword [esp + 0x14]
xor eax, eax
fadd dword [ebp + 0x2c]
fstp dword [ebp + 0xb8]
fld dword [esp + 0x18]
fadd dword [ebp + 0x30]
fstp dword [ebp + 0xbc]
fadd dword [ebp + 0x34]
fstp dword [ebp + 0xc0]
mov ax, word [ebp + 0xa0]
and eax, 0xfffd
or eax, 1
mov word [ebp + 0xa0], ax
jmp 0x55b096
test al, 0x20
je 0x55ab57
fld dword [ebp + 0x14]
mov ecx, dword [ebp + 0x44]
fmul dword [ebp + 0x3c]
mov dword [ebp + 0xc0], ecx
fld dword [ebp + 0x40]
fmul dword [ebp + 0x18]
fsubp st(1)
fst dword [ebp + 0xb8]
fstp dword [esp + 0x48]
fld dword [ebp + 0x40]
fmul dword [ebp + 0x14]
fld dword [ebp + 0x3c]
fmul dword [ebp + 0x18]
faddp st(1)
fst dword [ebp + 0xbc]
fstp dword [esp + 0x70]
jmp 0x55b096
test al, 1
je 0x55ac30
fld dword [ebp + 0x14]
lea ecx, [esp + 0x4c]
fmul dword [ebp + 0x3c]
fld dword [ebp + 0x40]
fmul dword [ebp + 0x18]
fsubp st(1)
fld dword [ebp + 0x40]
fmul dword [ebp + 0x14]
fld dword [ebp + 0x3c]
fmul dword [ebp + 0x18]
faddp st(1)
fld dword [0x66c410]
fsub dword [ebp + 0x48]
fld st(0)
fmul st(3)
fstp dword [esp + 0x4c]
fmul st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0x4c]
fsub dword [ebp + 0x2c]
fstp dword [esp + 0xa0]
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x4c], esi
fsub dword [ebp + 0x30]
fstp dword [esp + 0xa4]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x50], edi
call fcn.004018e0
fcomp dword [ebp + 0x50]
fnstsw ax
test ah, 0x41
jne 0x55abe9
fld dword [ebp + 0x50]
fld dword [esp + 0x4c]
fmul st(1)
fstp dword [esp + 0xa0]
fmul dword [esp + 0x50]
jmp 0x55abfe
mov dword [esp + 0xa4], edi
fld dword [esp + 0xa4]
mov dword [esp + 0xa0], esi
fld dword [esp + 0xa0]
mov al, byte [esp + 0x44]
fadd dword [ebp + 0x2c]
and al, 2
movzx dx, al
mov word [ebp + 0xa0], dx
fstp dword [ebp + 0xb8]
fadd dword [ebp + 0x30]
fstp dword [ebp + 0xbc]
fld dword [ebp + 0x34]
jmp 0x55b08a
fld dword [ebp + 0x44]
and eax, 0x200
fld dword [ebp + 0x40]
mov dword [esp + 0x3c], eax
fld dword [ebp + 0x3c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp dword [esp + 0x58]
fstp st(0)
fstp st(0)
fstp st(0)
je 0x55ad4d
lea eax, [ebp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
lea esi, [ebp + 0x80]
push esi
lea eax, [esp + 0x34]
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edx
call fcn.004052d0
add esp, 4
lea ecx, [esp + 0x30]
call fcn.00401990
fld dword [0x66c40c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x55acef
push esi
lea eax, [esp + 0x34]
mov ecx, edi
call fcn.004052d0
add esp, 4
lea ecx, [esp + 0x30]
call fcn.00401990
fld dword [0x66c40c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x55acef
mov ecx, dword [0x690508]
push esi
lea eax, [esp + 0x34]
call fcn.004052d0
add esp, 4
lea ecx, [esp + 0x30]
call fcn.00401990
fstp st(0)
lea ecx, [esp + 0x30]
push ecx
lea eax, [esp + 0x28]
mov ecx, esi
call fcn.004052d0
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00401990
fstp st(0)
fld dword [esp + 0x30]
fmul dword [ebp + 0x40]
fld dword [esp + 0x24]
fmul dword [ebp + 0x3c]
faddp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x34]
fmul dword [ebp + 0x40]
fld dword [esp + 0x28]
fmul dword [ebp + 0x3c]
faddp st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x38]
fmul dword [ebp + 0x40]
fld dword [esp + 0x2c]
fmul dword [ebp + 0x3c]
faddp st(1)
fadd dword [ebp + 0x44]
jmp 0x55aeb9
fld dword [ebp + 0x88]
fcomp dword [0x66c504]
fnstsw ax
test ah, 0x41
jne 0x55adba
fld dword [ebp + 0x14]
lea esi, [ebp + 0x80]
fmul dword [ebp + 0x3c]
fld dword [ebp + 0x40]
fmul dword [ebp + 0x18]
fsubp st(1)
fstp dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
fld dword [ebp + 0x40]
mov dword [esp + 0x48], edx
fmul dword [ebp + 0x14]
fld dword [ebp + 0x3c]
fmul dword [ebp + 0x18]
faddp st(1)
fstp dword [esp + 0x50]
mov eax, dword [esp + 0x50]
fld dword [esp + 0x50]
mov dword [esp + 0x70], eax
fmul dword [ebp + 0x84]
fld dword [esp + 0x4c]
fmul dword [esi]
faddp st(1)
fdiv dword [ebp + 0x88]
fsubr dword [ebp + 0x44]
jmp 0x55aeb9
lea ecx, [ebp + 0x20]
mov edx, ecx
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x34], eax
push edi
lea eax, [esp + 0x64]
mov dword [esp + 0x3c], edx
call fcn.004052d0
lea ecx, [esp + 0x64]
call fcn.00401990
fstp st(0)
fld dword [esp + 0x3c]
lea esi, [ebp + 0x80]
fmul dword [esi + 8]
lea eax, [esp + 0x34]
fld dword [esp + 0x38]
mov ecx, esi
fmul dword [esi + 4]
faddp st(1)
fld dword [esp + 0x34]
fmul dword [esi]
faddp st(1)
fchs
fstp dword [esp]
push eax
call fcn.00401930
fld dword [esp + 0x70]
fmul dword [esi + 8]
add esp, 4
fld dword [esp + 0x68]
lea ecx, [esp + 0x64]
fmul dword [esi + 4]
mov eax, ecx
faddp st(1)
fld dword [esp + 0x64]
fmul dword [esi]
faddp st(1)
fchs
fstp dword [esp]
push ecx
mov ecx, esi
call fcn.00401930
fld dword [ebp + 0x14]
fmul dword [ebp + 0x3c]
add esp, 8
test bl, bl
fld dword [ebp + 0x40]
fmul dword [ebp + 0x18]
fsubp st(1)
fstp dword [esp + 0x48]
fld dword [ebp + 0x40]
fmul dword [ebp + 0x14]
fld dword [ebp + 0x3c]
fmul dword [ebp + 0x18]
faddp st(1)
fstp dword [esp + 0x70]
fld dword [esp + 0x60]
fmul dword [ebp + 0x40]
fld dword [esp + 0x30]
fmul dword [ebp + 0x3c]
faddp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x34]
fmul dword [ebp + 0x3c]
fld dword [esp + 0x64]
fmul dword [ebp + 0x40]
faddp st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x38]
fmul dword [ebp + 0x3c]
fld dword [esp + 0x68]
fmul dword [ebp + 0x40]
faddp st(1)
fadd dword [ebp + 0x44]
fstp dword [esp + 0x54]
jne 0x55aebd
fld dword [esp + 0x54]
fmul dword [0x66c588]
fstp dword [esp + 0x54]
lea ecx, [esp + 0x4c]
call fcn.00401990
fstp st(0)
cmp word [esp + 0x3c], 0
jne 0x55af66
fld dword [esp + 0x54]
fcomp dword [ebp + 0x6c]
fnstsw ax
test ah, 0x41
jp 0x55aeeb
fld dword [esp + 0x58]
fmul dword [ebp + 0x70]
jmp 0x55af6a
fld dword [esp + 0x54]
fcomp dword [ebp + 0x68]
fld dword [esp + 0x54]
fnstsw ax
test ah, 5
jp 0x55af1f
fsub dword [ebp + 0x68]
fld dword [ebp + 0x70]
fsub dword [0x66c410]
fmulp st(1)
fld dword [ebp + 0x6c]
fsub dword [ebp + 0x68]
fdivp st(1)
fadd dword [0x66c410]
fmul dword [esp + 0x58]
jmp 0x55af6a
fcomp dword [ebp + 0x78]
fnstsw ax
test ah, 1
jne 0x55af32
fld dword [esp + 0x58]
fmul dword [ebp + 0x7c]
jmp 0x55af6a
fld dword [esp + 0x54]
fcomp dword [ebp + 0x74]
fnstsw ax
test ah, 0x41
jne 0x55af66
fld dword [esp + 0x54]
fsub dword [ebp + 0x74]
fld dword [ebp + 0x7c]
fsub dword [0x66c410]
fmulp st(1)
fld dword [ebp + 0x78]
fsub dword [ebp + 0x74]
fdivp st(1)
fadd dword [0x66c410]
fmul dword [esp + 0x58]
jmp 0x55af6a
fld dword [esp + 0x58]
fld dword [0x66c410]
lea ecx, [esp + 0x24]
fsub dword [ebp + 0x48]
xor bl, bl
fmulp st(1)
fld dword [esp + 0x4c]
fmul st(1)
fld dword [esp + 0x50]
fmul st(2)
fstp dword [esp + 0x28]
fld dword [esp + 0x54]
fmul st(2)
fstp dword [esp + 0x2c]
fsub dword [ebp + 0x2c]
fstp dword [esp + 0x14]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], edi
fstp st(0)
fld dword [esp + 0x28]
fsub dword [ebp + 0x30]
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fld dword [esp + 0x2c]
mov dword [esp + 0x28], edx
fsub dword [ebp + 0x34]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
call fcn.00401990
fcomp dword [ebp + 0x4c]
fnstsw ax
test ah, 0x41
jne 0x55b009
cmp word [esp + 0x3c], 0
jne 0x55afec
mov bl, byte [esp + 0x44]
shr bl, 1
and bl, 1
fld dword [ebp + 0x4c]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x2c]
jmp 0x55b021
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
fld dword [esp + 0x38]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ecx
fld dword [esi]
neg bl
fmul dword [0x66c810]
fsubr dword [esp + 0x30]
fld dword [esi + 4]
fmul dword [0x66c810]
sbb ebx, ebx
and ebx, 2
fsubr dword [esp + 0x34]
fld dword [esi + 8]
mov word [ebp + 0xa0], bx
fmul dword [0x66c810]
fsubr st(3)
fstp dword [esp + 0x38]
fxch st(1)
fadd dword [ebp + 0x2c]
fstp dword [ebp + 0xb8]
fadd dword [ebp + 0x30]
fstp dword [ebp + 0xbc]
fstp st(0)
fld dword [esp + 0x38]
fadd dword [ebp + 0x34]
fstp dword [ebp + 0xc0]
mov al, byte [ebp + 0xa0]
test al, 2
je 0x55b096
fld dword [ebp + 0xc0]
fsub dword [0x695ddc]
fstp dword [ebp + 0xc0]
mov ax, word [ebp + 4]
test al, 0x40
je 0x55b0a2
xor eax, eax
jmp 0x55b0c0
test al, al
jns 0x55b0ad
mov eax, 0xc0a0
jmp 0x55b0c0
and eax, 0x100
neg eax
sbb eax, eax
and eax, 0xffdfff00
add eax, 0x20c3a0
lea ecx, [ebp + 8]
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
lea ecx, [ebp + 0xb8]
mov edx, dword [ecx]
mov dword [esp + 0x60], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ecx
fld dword [esp + 0x68]
fadd dword [ebp + 0x38]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [ebp + 0x58]
push 0x10
fstp dword [esp + 0x70]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
push ecx
mov ecx, dword [ebp]
push eax
lea ebx, [esp + 0xac]
lea esi, [esp + 0x78]
lea edi, [esp + 0x2c]
call fcn.00502b90
add esp, 0x18
cmp ax, 0x10
mov dword [esp + 0x58], eax
jl 0x55b141
or byte [ebp + 0xa0], 8
jmp 0x55b148
and byte [ebp + 0xa0], 0xf7
or ecx, 0xffffffff
cmp word [esp + 0x58], 0
mov dword [ebp + 0xa8], ecx
jne 0x55b6a4
mov eax, dword [ebp + 0x90]
cmp eax, ecx
je 0x55b6a4
test eax, eax
mov edi, dword [0x738b98]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x80], 0x7f7fffff
jl 0x55b6a4
cmp eax, dword [edi + 0x3c]
jge 0x55b6a4
mov ecx, dword [edi + 0x40]
lea edx, [eax + eax*2]
mov esi, dword [ecx + edx*4 + 4]
mov dword [esp + 0xb8], ecx
lea ecx, [ecx + edx*4]
mov edx, dword [ecx]
push edi
lea eax, [esp + 0x88]
mov dword [esp + 0xa4], esi
call fcn.0044db50
fld dword [esp + 0x88]
fmul dword [esp + 0x78]
mov eax, dword [edi + 0x4c]
fld dword [esp + 0x90]
add esp, 4
fmul dword [esp + 0x7c]
mov dword [esp + 0x40], eax
faddp st(1)
fld dword [esp + 0x88]
fmul dword [esp + 0x78]
faddp st(1)
fsub dword [esp + 0x90]
fchs
fld dword [esp + 0x84]
fmul st(1)
fadd dword [esp + 0x74]
fstp dword [esp + 0x14]
fld dword [esp + 0x88]
fmul st(1)
fadd dword [esp + 0x78]
fstp dword [esp + 0x18]
fld dword [esp + 0x8c]
fmul st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x1c]
fstp st(0)
jmp 0x55b230
mov edx, dword [esp + 0x40]
mov eax, dword [ebp + 0x90]
lea ecx, [esi + esi*2]
lea esi, [edx + ecx*8]
cmp eax, dword [esi + 0x14]
sete bl
xor eax, eax
test bl, bl
sete al
mov edi, dword [esi + eax*4 + 0x10]
cmp edi, 0xffffffff
je 0x55b47d
test byte [ebp + 5], 2
mov edx, dword [esp + 0xb8]
lea ecx, [edi + edi*2]
lea ecx, [edx + ecx*4]
jne 0x55b277
test byte [ecx + 8], 4
je 0x55b47d
mov eax, dword [0x738b98]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x88]
call fcn.0044db50
fld dword [esp + 0x88]
fmul dword [esp + 0x98]
add esp, 4
fld dword [esp + 0x88]
fmul dword [esp + 0x98]
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [esp + 0x9c]
faddp st(1)
fst dword [esp + 0x3c]
fcomp dword [0x66c40c]
fnstsw ax
test ah, 0x41
jne 0x55b47d
fld dword [esp + 0x84]
fmul dword [esp + 0x74]
fld dword [esp + 0x8c]
fmul dword [esp + 0x7c]
faddp st(1)
fld dword [esp + 0x88]
fmul dword [esp + 0x78]
faddp st(1)
fsub dword [esp + 0x90]
fld dword [ebp + 0x58]
fmul dword [0x66c53c]
fcompp
fnstsw ax
test ah, 5
jp 0x55b47d
mov eax, dword [0x738b98]
mov eax, dword [eax + 0x58]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
shl edx, 4
fld dword [edx + eax]
add edx, eax
shl ecx, 4
fsub dword [ecx + eax]
add ecx, eax
fstp dword [esp + 0x30]
fld dword [edx + 4]
fsub dword [ecx + 4]
fstp dword [esp + 0x34]
fld dword [edx + 8]
fsub dword [ecx + 8]
fstp dword [esp + 0x38]
fld dword [esp + 0x14]
fsub dword [ecx]
fld dword [esp + 0x18]
fsub dword [ecx + 4]
fld dword [esp + 0x1c]
fsub dword [ecx + 8]
fxch st(2)
fmul dword [esp + 0x30]
fxch st(2)
fmul dword [esp + 0x38]
faddp st(2)
fmul dword [esp + 0x34]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
faddp st(1)
fld dword [esp + 0x34]
fmul dword [esp + 0x34]
faddp st(1)
fdivp st(1)
fst dword [esp + 0x44]
fcomp dword [0x66c40c]
fnstsw ax
test ah, 5
jp 0x55b3b5
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
jmp 0x55b3f2
fld dword [esp + 0x44]
fcomp dword [0x66c410]
fnstsw ax
test ah, 0x41
jne 0x55b3dc
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
jmp 0x55b3f2
mov edx, dword [esp + 0x44]
push edx
push ecx
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x38]
call fcn.00401930
add esp, 8
fld dword [esp + 0x24]
fsub dword [esp + 0x14]
fld dword [esp + 0x28]
fsub dword [esp + 0x18]
fld dword [esp + 0x2c]
fsub dword [esp + 0x1c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [esp + 0x80]
fnstsw ax
test ah, 5
jp 0x55b47b
mov eax, dword [esp + 0x84]
fstp dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x6c], edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x4c], ecx
jmp 0x55b47d
fstp st(0)
mov eax, dword [esp + 0xa0]
movzx edx, bl
mov esi, dword [esi + edx*4 + 8]
cmp esi, eax
jne 0x55b230
mov ecx, dword [esp + 0x6c]
or edx, 0xffffffff
cmp ecx, edx
je 0x55b6a7
fld dword [ebp + 0x58]
fadd st(0), st(0)
fld st(0)
fmul st(1)
fld dword [esp + 0x80]
fcompp
fnstsw ax
fstp st(0)
test ah, 0x41
je 0x55b6a7
fld dword [esp + 0x4c]
fcomp dword [0x66cabc]
fnstsw ax
test ah, 0x41
je 0x55b6a7
fld dword [esp + 0x74]
fmul dword [esp + 0xa8]
fld dword [esp + 0xb0]
fmul dword [esp + 0x7c]
faddp st(1)
fld dword [esp + 0xac]
fmul dword [esp + 0x78]
faddp st(1)
fld dword [esp + 0xb4]
fadd dword [ebp + 0x58]
fsubp st(1)
fst dword [esp + 0x6c]
fabs
fld dword [ebp + 0x58]
fmul dword [0x66c408]
fcompp
fnstsw ax
test ah, 5
jnp 0x55b6a7
fld dword [esp + 0x94]
fmul dword [esp + 0xa8]
fld dword [esp + 0xac]
fmul dword [esp + 0x98]
faddp st(1)
fld dword [esp + 0xb0]
fmul dword [esp + 0x9c]
faddp st(1)
fld dword [esp + 0x6c]
fchs
fld dword [esp + 0xa8]
fmul st(1)
fadd dword [esp + 0x74]
fstp dword [esp + 0x74]
fld dword [esp + 0xac]
fmul st(1)
fadd dword [esp + 0x78]
fstp dword [esp + 0x78]
fld dword [esp + 0xb0]
fmul st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x7c]
fstp st(0)
fcom dword [0x66ca48]
fnstsw ax
test ah, 0x41
jne 0x55b5e6
fadd dword [0x66c418]
fchs
fld dword [esp + 0xa8]
fmul st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x94]
fld dword [esp + 0xac]
fmul st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x98]
fld dword [esp + 0xb0]
fmul st(1)
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
fstp st(0)
mov eax, dword [esp + 0xa8]
fld dword [ebp + 0x58]
mov dword [esp + 0xcc], eax
fchs
mov eax, dword [esp + 0xac]
fld dword [esp + 0xa8]
fmul st(1)
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xd4], eax
fadd dword [esp + 0x74]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x58], 1
mov dword [esp + 0xbc], 0
fstp dword [esp + 0xc0]
mov dword [esp + 0xd8], eax
fld dword [esp + 0xac]
mov dword [esp + 0xdc], edx
fmul st(1)
mov dword [esp + 0xe0], ecx
mov byte [esp + 0xe4], 0
mov byte [esp + 0xe5], 0
fadd dword [esp + 0x78]
mov word [esp + 0xe6], dx
mov dword [ebp + 0xa8], ecx
fstp dword [esp + 0xc4]
fld dword [esp + 0xb0]
fmul st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0xc8]
fstp st(0)
jmp 0x55b6a7
or edx, 0xffffffff
fld dword [esp + 0x70]
fmul dword [esp + 0x70]
fld dword [esp + 0x48]
fmul dword [esp + 0x48]
faddp st(1)
fcom dword [0x66cab8]
fnstsw ax
test ah, 0x41
jne 0x55b6e2
fsqrt
fdivr qword [0x66c440]
fld dword [esp + 0x48]
fmul st(1)
fstp dword [esp + 0x48]
fmul dword [esp + 0x70]
fstp dword [esp + 0x70]
jmp 0x55b6e4
fstp st(0)
xor eax, eax
mov ax, word [ebp + 4]
test al, 0x10
mov dword [esp + 0x80], edx
mov byte [esp + 0x13], 0
mov byte [esp + 0x23], 0
mov dword [esp + 0x3c], 0xff7fffff
mov dword [esp + 0x40], 0xff7fffff
mov dword [esp + 0x44], eax
jne 0x55ba04
xor esi, esi
cmp word [esp + 0x58], si
jle 0x55ba04
and eax, 0x80
mov dword [esp + 0x4c], eax
lea edx, [esp + 0xd0]
jmp 0x55b740
mov eax, dword [esp + 0x4c]
lea ebx, [ebx]
test ax, ax
jne 0x55b757
mov al, byte [esp + 0x5f]
test al, al
jne 0x55b753
test byte [edx + 0x14], 4
je 0x55b757
mov cl, 1
jmp 0x55b759
xor cl, cl
mov eax, dword [ebp + 0xa8]
cmp eax, 0xffffffff
je 0x55b77c
movsx edi, word [esp + 0x80]
imul edi, edi, 0x2c
cmp dword [esp + edi + 0xe0], eax
jne 0x55b77c
mov bl, 1
jmp 0x55b77e
xor bl, bl
test cl, cl
fld dword [ebp + 0xb8]
fmul dword [edx - 4]
fld dword [edx]
fmul dword [ebp + 0xbc]
faddp st(1)
fld dword [edx + 4]
fmul dword [ebp + 0xc0]
faddp st(1)
fchs
fstp dword [esp + 0x6c]
je 0x55b7ef
mov al, byte [esp + 0x5f]
test al, al
jne 0x55b7ca
fld dword [esp + 0x70]
fmul dword [edx]
fld dword [esp + 0x48]
fmul dword [edx - 4]
faddp st(1)
fcomp dword [0x66c408]
fnstsw ax
test ah, 0x41
je 0x55b823
mov al, byte [esp + 0x13]
test al, al
je 0x55b805
test bl, bl
jne 0x55b805
mov al, byte [esp + 0x23]
test al, al
jne 0x55b823
fld dword [esp + 0x6c]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 0x41
je 0x55b805
jmp 0x55b823
mov al, byte [esp + 0x13]
test al, al
jne 0x55b823
fld dword [edx + 4]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x55b823
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x13], cl
mov ecx, dword [edx + 4]
mov dword [esp + 0x80], esi
mov byte [esp + 0x23], bl
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov bx, word [ebp + 0xa0]
test bl, 0x10
jne 0x55b875
test byte [edx + 0x14], 8
jne 0x55b86b
mov eax, dword [edx + 0xc]
cmp eax, 0xffffffff
je 0x55b875
and eax, 0xffff
lea ecx, [eax + eax*2]
mov eax, dword [0x851c30]
mov eax, dword [eax + 0x34]
mov cl, byte [eax + ecx*4 + 3]
mov dword [esp + 0xa0], edx
mov edx, 1
shl edx, cl
test dl, 0x40
mov edx, dword [esp + 0xa0]
jne 0x55b875
or ebx, 0x10
mov word [ebp + 0xa0], bx
inc esi
add edx, 0x2c
cmp si, word [esp + 0x58]
jl 0x55b736
mov eax, dword [esp + 0x80]
cmp ax, 0xffff
je 0x55ba04
movsx edi, ax
imul edi, edi, 0x2c
lea esi, [esp + edi + 0xcc]
mov ecx, esi
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], edx
mov edx, dword [ecx + 8]
fld dword [esp + 0x88]
fmul dword [esp + 0x64]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
fld dword [esp + 0x8c]
mov al, byte [esp + 0x13]
test al, al
fmul dword [esp + 0x68]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [esp + 0x60]
faddp st(1)
fchs
fstp dword [esp + 0x48]
jne 0x55b9a3
mov al, byte [esp + 0x23]
test al, al
jne 0x55b9a3
fld dword [esp + 0x3c]
fcomp dword [ebp + 0x64]
fnstsw ax
test ah, 1
jne 0x55ba04
test byte [esp + 0x44], 1
je 0x55b9a3
fld dword [ebp + 0x5c]
fcomp dword [0x66c528]
fnstsw ax
test ah, 5
jp 0x55b9a3
fld dword [esp + 0x84]
fmul dword [esp + 0x48]
fadd dword [esp + 0x60]
fld dword [esp + 0x88]
fmul dword [esp + 0x48]
fadd dword [esp + 0x64]
fld dword [esp + 0x8c]
fmul dword [esp + 0x48]
fadd dword [esp + 0x68]
fld dword [ebp + 0x5c]
fld st(1)
fmul st(2)
fld st(3)
fmul st(4)
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fld st(1)
fmul st(2)
fcompp
fstp st(0)
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x55b9a3
lea eax, [esp + 0x60]
call fcn.00401960
fdivr dword [esp + 0x48]
fcomp dword [ebp + 0x60]
fnstsw ax
test ah, 5
jnp 0x55ba04
mov edx, dword [esi]
mov edi, dword [esp + edi + 0xe0]
and byte [ebp + 0xa0], 0xfe
cmp edi, 0xffffffff
lea eax, [ebp + 0x80]
mov ecx, eax
mov dword [ecx], edx
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 8]
mov dword [ecx + 8], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 0xc], edx
mov dword [ebp + 0xa4], edi
je 0x55b9e2
cmp edi, dword [ebp + 0xa8]
je 0x55ba3e
fld dword [esp + 0x64]
fmul dword [eax + 4]
fld dword [esp + 0x68]
fmul dword [eax + 8]
faddp st(1)
fld dword [esp + 0x60]
fmul dword [eax]
faddp st(1)
fchs
fstp dword [ebp + 0xc4]
jmp 0x55ba48
mov ecx, dword [0x695dec]
mov edx, dword [0x695df0]
or byte [ebp + 0xa0], 1
lea eax, [ebp + 0x80]
mov dword [eax], ecx
mov ecx, dword [0x695df4]
mov dword [eax + 4], edx
mov edx, dword [0x695df8]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [ebp + 0xa4], 0xffffffff
mov dword [ebp + 0xc4], 0
mov eax, dword [esp + 0x58]
or esi, 0xffffffff
test ax, ax
jle 0x55bafd
mov ebx, dword [esp + 0x4c]
movzx eax, ax
lea edi, [esp + 0xdc]
mov dword [esp + 0x40], eax
lea ebx, [ebx]
mov edx, dword [edi]
cmp edx, 0xffffffff
je 0x55bae7
mov eax, edx
and eax, 0xffff
cmp esi, 0xffffffff
lea ecx, [eax + eax*2]
mov eax, dword [0x851c30]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4 + 8]
fld dword [ecx + 0x68]
fsub dword [esp + 0x94]
fld dword [ecx + 0x6c]
fsub dword [esp + 0x98]
fld dword [ecx + 0x70]
fsub dword [esp + 0x9c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
je 0x55bdaf
mov eax, 1
cmp bx, ax
jne 0x55bd97
cmp word [ecx + 0xb4], ax
je 0x55bda0
fstp st(0)
mov eax, dword [esp + 0x40]
add edi, 0x2c
dec eax
mov dword [esp + 0x40], eax
jne 0x55ba70
mov eax, dword [esp + 0x58]
test ax, ax
mov dword [ebp + 0x98], esi
mov dword [ebp + 0x9c], 0xffffffff
jle 0x55bbdb
movzx edx, ax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
jmp 0x55bb30
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x55bbc1
mov ecx, edx
xor edi, edi
sar ecx, 0x10
test dx, dx
jl 0x55bb7b
mov esi, dword [0x851c30]
cmp dx, word [esi + 0x20]
jge 0x55bb7b
movsx eax, word [esi + 0x22]
movsx ebx, dx
imul eax, ebx
mov ebx, dword [esi + 0x34]
mov si, word [eax + ebx]
add eax, ebx
test si, si
je 0x55bb7b
test cx, cx
je 0x55bb79
cmp si, cx
jne 0x55bb7b
mov edi, eax
test edi, edi
je 0x55bbc1
mov cl, byte [edi + 3]
mov eax, 1
shl eax, cl
test al, al
jns 0x55bbc1
mov eax, dword [edi + 8]
test eax, eax
je 0x55bbc1
mov ecx, dword [eax]
mov eax, dword [0x86cff4]
and ecx, 0xffff
shl ecx, 5
mov eax, dword [ecx + eax + 0x14]
test byte [eax + 0x292], 4
je 0x55bbc1
cmp word [eax + 0x2ea], 0xffff
je 0x55bbc1
mov dword [ebp + 0x9c], edx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add ecx, 0x2c
dec eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
jne 0x55bb30
fld dword [esp + 0x94]
mov edi, dword [esp + 0x74]
fsub dword [esp + 0x60]
mov ebx, dword [esp + 0x78]
fld dword [esp + 0x98]
mov ecx, dword [esp + 0x7c]
fsub dword [esp + 0x64]
mov edx, dword [esp + 0x94]
fld dword [esp + 0x9c]
lea eax, [ebp + 0xac]
fsub dword [esp + 0x68]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [ebp + 0xb8], edx
fld st(0)
mov edx, dword [esp + 0x44]
test dl, 4
fmul st(1)
fld st(2)
mov dword [eax + 8], ecx
fmul st(3)
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [ebp + 0xbc], eax
faddp st(1)
mov dword [ebp + 0xc0], ecx
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp dword [ebp + 0xc8]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [ebp + 0xc0]
fsub dword [ebp + 0x38]
fstp dword [ebp + 0xc0]
je 0x55bd8c
test dl, 8
je 0x55bd8c
mov ecx, dword [ebp]
mov esi, dword [0x851c30]
mov esi, dword [esi + 0x34]
mov eax, ecx
and eax, 0xffff
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 8]
cmp dword [eax + 0x218], 0xffffffff
je 0x55bd8c
mov eax, dword [eax]
mov esi, dword [0x86cff4]
and eax, 0xffff
shl eax, 5
mov esi, dword [eax + esi + 0x14]
test byte [esi + 0x2f4], 0x18
jne 0x55bd8c
fld dword [esi + 0x424]
and dl, 0x80
fmul dword [0x66c408]
neg dl
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
fstp dword [esp + 0x40]
sbb edx, edx
and edx, 0xffdffd00
add edx, 0x20c3a0
mov eax, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
fadd dword [esp + 0x40]
lea edx, [esp + 0x3a8]
push edx
mov edx, dword [esp + 0x44]
push ecx
fstp dword [esp + 0x24]
mov ecx, dword [esi + 0x42c]
push ecx
push 0
push edx
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00502020
add esp, 0x1c
test al, al
je 0x55bd8c
fld dword [esi + 0x42c]
mov eax, dword [0x690510]
fadd st(0), st(0)
lea edx, [esp + 0x37c]
push edx
lea ecx, [esp + 0x3ac]
fsubr dword [esi + 0x424]
fld st(0)
fmul dword [eax]
fstp dword [esp + 0x28]
fld st(0)
fmul dword [eax + 4]
fstp dword [esp + 0x2c]
fmul dword [eax + 8]
lea eax, [esp + 0x28]
push eax
lea eax, [ebp + 0xac]
push eax
fstp dword [esp + 0x38]
push ecx
call fcn.00500790
add esp, 0x10
test al, al
je 0x55bd8c
or byte [ebp + 0xa0], 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xafa0
ret
cmp word [ecx + 0xb4], ax
je 0x55bdaf
fcom dword [esp + 0x4c]
fnstsw ax
test ah, 0x41
jne 0x55bae5
mov bx, word [ecx + 0xb4]
fstp dword [esp + 0x4c]
mov esi, edx
jmp 0x55bae7