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

Disassembly:
push ebx
push esi
push ebp
sub esp, 0xc0
mov ebp, dword [esp + 0xd0]
lea ebx, [ebp + 0x16d]
mov al, byte [ebx]
shr al, 5
and al, 1
fldz
fldz
fldz
je 0x5543d3
fcompp
add esp, 0xc0
fstp st(0)
pop ebp
pop esi
pop ebx
ret
mov edx, 0x7e46b8
lea eax, [ebp + 0x34]
fld dword [edx + 8]
fsub dword [eax + 8]
fstp st(1)
fld dword [edx + 4]
fsub dword [eax + 4]
fstp st(2)
fld dword [edx]
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 + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x6974ac]
fnstsw ax
test ah, 0x45
jne 0x554440
fcompp
add esp, 0xc0
fstp st(0)
pop ebp
pop esi
pop ebx
ret
lea eax, [ebp + 0x14]
fld dword [eax]
fstp dword [esp + 0x54]
fld dword [eax + 4]
fstp dword [esp + 0x58]
fld dword [eax + 8]
fstp dword [esp + 0x5c]
fcompp
lea ecx, [esp + 0x54]
fstp st(0)
call fcn.004dfea0
lea eax, [esp + 0x54]
push eax
call fcn.005542d0
pop ecx
movsx ecx, word [ebp + 0x5c]
mov eax, dword [ecx*4 + 0x92d4c8]
mov esi, dword [eax + 0x1c]
cmp word [esi + 0x2c], 2
jl 0x554d0e
mov eax, dword [esi + 0x40]
fld dword [eax]
fstp dword [esp + 0x60]
fld dword [eax + 4]
fstp dword [esp + 0x64]
fld dword [eax + 8]
fstp dword [esp + 0x68]
mov eax, dword [esi + 0x40]
add eax, 0xc
fld dword [eax]
fstp dword [esp + 0x6c]
fld dword [eax + 4]
fstp dword [esp + 0x70]
fld dword [eax + 8]
fstp dword [esp + 0x74]
mov eax, dword [esi + 0x40]
add eax, 0x18
fld dword [eax]
fstp dword [esp + 0x78]
fld dword [eax + 4]
fstp dword [esp + 0x7c]
fld dword [eax + 8]
fstp dword [esp + 0x80]
mov eax, dword [esi + 0x40]
add eax, 0x24
fld dword [eax]
fstp dword [esp + 0x84]
fld dword [eax + 4]
fstp dword [esp + 0x88]
fld dword [eax + 8]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x94]
fstp dword [esp + 0x90]
lea edx, [ebp + 4]
push edx
push eax
call fcn.004dff20
mov eax, dword [esp + 0x9c]
add esp, 0xc
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x94]
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], ecx
lea ecx, [ebp + 4]
push eax
lea eax, [esp + 0xa0]
push ecx
push eax
call fcn.004dff20
mov eax, dword [esp + 0xa8]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x78]
mov dword [esp + 0x20], edx
lea ecx, [ebp + 4]
push eax
lea eax, [esp + 0xac]
push ecx
push eax
call fcn.004dff20
mov eax, dword [esp + 0xb4]
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xac]
lea eax, [esp + 0x84]
mov dword [esp + 0x2c], ecx
lea ecx, [ebp + 4]
push eax
lea eax, [esp + 0xb8]
push ecx
push eax
call fcn.004dff20
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edx
mov al, byte [ebx]
add esp, 0xc
shr al, 4
and al, 1
je 0x55490b
fld dword [esp + 0xc]
fcomp dword [0x6974a0]
fnstsw ax
mov bl, 0xff
test ah, 0x45
jne 0x55464a
fld dword [esp + 0xc]
fsub dword [0x6974a0]
and ebx, 0xff
mov dword [esp + 0x48], ebx
fmul dword [0x6974e0]
fmul dword [0x6974e4]
fsubr dword [0x6974e8]
fimul dword [esp + 0x48]
fnstcw word [esp]
mov eax, dword [esp]
or byte [esp + 1], 0xc
fldcw word [esp]
mov dword [esp], eax
fistp dword [esp + 0x48]
fldcw word [esp]
mov bl, byte [esp + 0x48]
cmp dword [0xa0fc78], 0x2f3
jge 0x554666
cmp dword [0x978694], 0x17b
jl 0x5546ed
cmp dword [0x978694], 0x100
je 0x5546ed
mov edx, dword [0xa10738]
mov eax, dword [edx]
push eax
push 1
call fcn.00649ba0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
mov eax, dword [0x978694]
pop ecx
add eax, 0xffffff00
pop ecx
push 1
push 0
push eax
push 0x7ec208
call fcn.0065ae90
add esp, 0x10
test eax, eax
je 0x5546d9
mov eax, dword [0xa0fc78]
add eax, 0xfffffe00
push eax
push 0x933fc0
push 3
call fcn.0065af90
add esp, 0xc
call fcn.0065af60
mov dword [0xa0fc78], 0x200
mov dword [0x978694], 0x100
movzx eax, bl
fld dword [esp + 0x10]
mov ecx, eax
mov ebx, eax
mov edx, eax
shl ebx, 0x10
shl ecx, 0x18
shl edx, 8
or ebx, ecx
or ebx, edx
mov edx, dword [0x978694]
or ebx, eax
mov eax, dword [0x978694]
imul eax, eax, 0x24
add edx, 0xffffff00
mov ecx, edx
mov dword [eax + 0x7e9e20], ebx
mov dword [eax + 0x7e9e44], ebx
mov dword [eax + 0x7e9e68], ebx
mov dword [eax + 0x7e9e8c], ebx
mov dword [eax + 0x7e9e24], 0
mov dword [eax + 0x7e9e28], 0
mov dword [eax + 0x7e9e48], 0x41800000
mov dword [eax + 0x7e9e4c], 0
mov dword [eax + 0x7e9e6c], 0
mov dword [eax + 0x7e9e70], 0x41800000
mov dword [eax + 0x7e9e90], 0x41800000
mov dword [eax + 0x7e9e94], 0x41800000
fstp dword [eax + 0x7e9e08]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e0c]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e2c]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e30]
fld dword [esp + 0x24]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e50]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e54]
fld dword [esp + 0x30]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x34]
fstp dword [eax + 0x7e9e74]
fld dword [esp + 0x38]
fstp dword [eax + 0x7e9e78]
fld dword [esp + 0x3c]
fstp dword [eax + 0x7e9e7c]
mov ebx, dword [esi + 0x44]
mov eax, dword [0xa0fc78]
add cx, word [ebx]
mov word [eax*2 + 0x933bc0], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 2]
mov word [eax*2 + 0x933bc2], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 4]
mov word [eax*2 + 0x933bc4], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 8]
mov word [eax*2 + 0x933bc6], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 0xa]
mov word [eax*2 + 0x933bc8], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 0xc]
mov word [eax*2 + 0x933bca], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx]
mov word [eax*2 + 0x933bcc], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 4]
mov word [eax*2 + 0x933bce], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 2]
mov word [eax*2 + 0x933bd0], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 8]
mov word [eax*2 + 0x933bd2], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc78]
add cx, word [ebx + 0xc]
mov word [eax*2 + 0x933bd4], cx
mov ebx, dword [esi + 0x44]
mov eax, dword [0xa0fc78]
add dx, word [ebx + 0xa]
add dword [0xa0fc78], 0xc
mov word [eax*2 + 0x933bd6], dx
add dword [0x978694], 4
cmp dword [0x978424], 0x3f3
jge 0x554927
cmp dword [0x975328], 0x1fb
jl 0x5549ae
cmp dword [0x975328], 0x180
je 0x5549ae
mov ecx, dword [0xa1073c]
mov eax, dword [ecx]
push eax
push 1
call fcn.00649ba0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
mov eax, dword [0x975328]
pop ecx
add eax, 0xfffffe80
pop ecx
push 1
push 0
push eax
push 0x7ed408
call fcn.0065ae90
add esp, 0x10
test eax, eax
je 0x55499a
mov eax, dword [0x978424]
add eax, 0xfffffd00
push eax
push 0x9341c0
push 3
call fcn.0065af90
add esp, 0xc
call fcn.0065af60
mov dword [0x978424], 0x300
mov dword [0x975328], 0x180
fld dword [esp + 0xc]
fcomp dword [0x6974a0]
fnstsw ax
mov bl, 0x64
test ah, 0x45
jne 0x554a07
fld dword [esp + 0xc]
fsub dword [0x6974a0]
and ebx, 0xff
mov dword [esp + 0x48], ebx
fmul dword [0x6974e0]
fmul dword [0x6974e4]
fsubr dword [0x6974e8]
fimul dword [esp + 0x48]
fnstcw word [esp]
mov eax, dword [esp]
or byte [esp + 1], 0xc
fldcw word [esp]
mov dword [esp], eax
fistp dword [esp + 0x48]
fldcw word [esp]
mov bl, byte [esp + 0x48]
movzx eax, bl
fld dword [0x6974cc]
mov edx, eax
mov ebx, eax
mov ecx, eax
shl ebx, 0x10
shl edx, 0x18
shl ecx, 8
or ebx, edx
or ebx, ecx
or ebx, eax
mov eax, dword [0x975328]
imul eax, eax, 0x24
mov dword [eax + 0x7e9e20], ebx
mov dword [eax + 0x7e9e44], ebx
mov dword [eax + 0x7e9e68], ebx
mov dword [eax + 0x7e9e8c], ebx
mov eax, 0x7e4698
fmul dword [eax + 8]
fmul dword [0x6974ec]
fstp dword [esp + 8]
push dword [eax + 4]
push dword [eax]
call fcn.004a55e0
fmul dword [0x6974f0]
mov bx, word [0x975328]
mov dx, word [0x975328]
pop ecx
pop ecx
fstp dword [esp + 4]
movzx eax, word [ebp + 0x5a]
mov bp, word [0x975328]
mov cx, word [0x975328]
and eax, 0xf
mov dword [esp + 0x48], eax
mov eax, dword [0x975328]
fild dword [esp + 0x48]
imul eax, eax, 0x24
fmul dword [0x6974a4]
fadd dword [esp + 4]
fstp dword [esp + 4]
fld dword [esp + 4]
fstp dword [eax + 0x7e9e24]
fld dword [esp + 8]
fstp dword [eax + 0x7e9e28]
fld dword [0x6974ec]
fadd dword [esp + 4]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [eax + 0x7e9e48]
fld dword [esp + 8]
fstp dword [eax + 0x7e9e4c]
fld dword [esp + 4]
fstp dword [eax + 0x7e9e6c]
fld dword [0x6974ec]
fadd dword [esp + 8]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp dword [eax + 0x7e9e70]
fld dword [esp + 0x40]
fstp dword [eax + 0x7e9e90]
fld dword [esp + 0x44]
fstp dword [eax + 0x7e9e94]
fld dword [esp + 0x10]
fstp dword [eax + 0x7e9e08]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e0c]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e2c]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e30]
fld dword [esp + 0x24]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e50]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e54]
fld dword [esp + 0x30]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x34]
fstp dword [eax + 0x7e9e74]
fld dword [esp + 0x38]
fstp dword [eax + 0x7e9e78]
fld dword [esp + 0x3c]
fstp dword [eax + 0x7e9e7c]
mov eax, dword [esi + 0x44]
add bp, word [eax]
mov eax, dword [0x978424]
add ebp, 0xfffffe80
mov word [eax*2 + 0x933bc0], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 2]
mov eax, dword [0x978424]
add ebx, 0xfffffe80
mov bp, word [0x975328]
mov word [eax*2 + 0x933bc2], bx
mov eax, dword [esi + 0x44]
add dx, word [eax + 4]
mov eax, dword [0x978424]
add edx, 0xfffffe80
mov bx, word [0x975328]
mov word [eax*2 + 0x933bc4], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 8]
mov eax, dword [0x978424]
add ecx, 0xfffffe80
mov dx, word [0x975328]
mov word [eax*2 + 0x933bc6], cx
mov eax, dword [esi + 0x44]
add bp, word [eax + 0xa]
mov eax, dword [0x978424]
add ebp, 0xfffffe80
mov cx, word [0x975328]
mov word [eax*2 + 0x933bc8], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 0xc]
mov eax, dword [0x978424]
add ebx, 0xfffffe80
mov bp, word [0x975328]
mov word [eax*2 + 0x933bca], bx
mov eax, dword [esi + 0x44]
add dx, word [eax]
mov eax, dword [0x978424]
add edx, 0xfffffe80
mov bx, word [0x975328]
mov word [eax*2 + 0x933bcc], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 4]
mov eax, dword [0x978424]
add ecx, 0xfffffe80
mov dx, word [0x975328]
mov word [eax*2 + 0x933bce], cx
mov eax, dword [esi + 0x44]
add bp, word [eax + 2]
mov eax, dword [0x978424]
add ebp, 0xfffffe80
mov cx, word [0x975328]
mov word [eax*2 + 0x933bd0], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 8]
mov eax, dword [0x978424]
add ebx, 0xfffffe80
mov word [eax*2 + 0x933bd2], bx
mov eax, dword [esi + 0x44]
add dx, word [eax + 0xc]
mov eax, dword [0x978424]
add edx, 0xfffffe80
mov word [eax*2 + 0x933bd4], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 0xa]
mov eax, dword [0x978424]
add ecx, 0xfffffe80
add dword [0x978424], 0xc
add dword [0x975328], 4
mov word [eax*2 + 0x933bd6], cx
add esp, 0xc0
pop ebp
pop esi
pop ebx
ret