Function at 0x5543c0
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 0x5543f3
fcompp
add esp, 0xc0
fstp st(0)
pop ebp
pop esi
pop ebx
ret
mov edx, 0x7e46c0
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 0x554460
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.004dfec0
lea eax, [esp + 0x54]
push eax
call fcn.005542f0
pop ecx
movsx ecx, word [ebp + 0x5c]
mov eax, dword [ecx*4 + 0x92d4d0]
mov esi, dword [eax + 0x1c]
cmp word [esi + 0x2c], 2
jl 0x554d2e
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.004dff40
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.004dff40
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.004dff40
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.004dff40
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 0x55492b
fld dword [esp + 0xc]
fcomp dword [0x6974a0]
fnstsw ax
mov bl, 0xff
test ah, 0x45
jne 0x55466a
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 [0xa0fc80], 0x2f3
jge 0x554686
cmp dword [0x97869c], 0x17b
jl 0x55470d
cmp dword [0x97869c], 0x100
je 0x55470d
mov edx, dword [0xa10740]
mov eax, dword [edx]
push eax
push 1
call fcn.00649bf0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
mov eax, dword [0x97869c]
pop ecx
add eax, 0xffffff00
pop ecx
push 1
push 0
push eax
push 0x7ec210
call fcn.0065aee0
add esp, 0x10
test eax, eax
je 0x5546f9
mov eax, dword [0xa0fc80]
add eax, 0xfffffe00
push eax
push 0x933fc8
push 3
call fcn.0065afe0
add esp, 0xc
call fcn.0065afb0
mov dword [0xa0fc80], 0x200
mov dword [0x97869c], 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 [0x97869c]
or ebx, eax
mov eax, dword [0x97869c]
imul eax, eax, 0x24
add edx, 0xffffff00
mov ecx, edx
mov dword [eax + 0x7e9e28], ebx
mov dword [eax + 0x7e9e4c], ebx
mov dword [eax + 0x7e9e70], ebx
mov dword [eax + 0x7e9e94], ebx
mov dword [eax + 0x7e9e2c], 0
mov dword [eax + 0x7e9e30], 0
mov dword [eax + 0x7e9e50], 0x41800000
mov dword [eax + 0x7e9e54], 0
mov dword [eax + 0x7e9e74], 0
mov dword [eax + 0x7e9e78], 0x41800000
mov dword [eax + 0x7e9e98], 0x41800000
mov dword [eax + 0x7e9e9c], 0x41800000
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e14]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e18]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e38]
fld dword [esp + 0x24]
fstp dword [eax + 0x7e9e3c]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e5c]
fld dword [esp + 0x30]
fstp dword [eax + 0x7e9e60]
fld dword [esp + 0x34]
fstp dword [eax + 0x7e9e7c]
fld dword [esp + 0x38]
fstp dword [eax + 0x7e9e80]
fld dword [esp + 0x3c]
fstp dword [eax + 0x7e9e84]
mov ebx, dword [esi + 0x44]
mov eax, dword [0xa0fc80]
add cx, word [ebx]
mov word [eax*2 + 0x933bc8], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 2]
mov word [eax*2 + 0x933bca], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 4]
mov word [eax*2 + 0x933bcc], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 8]
mov word [eax*2 + 0x933bce], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 0xa]
mov word [eax*2 + 0x933bd0], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 0xc]
mov word [eax*2 + 0x933bd2], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx]
mov word [eax*2 + 0x933bd4], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 4]
mov word [eax*2 + 0x933bd6], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 2]
mov word [eax*2 + 0x933bd8], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 8]
mov word [eax*2 + 0x933bda], cx
mov ebx, dword [esi + 0x44]
mov ecx, edx
mov eax, dword [0xa0fc80]
add cx, word [ebx + 0xc]
mov word [eax*2 + 0x933bdc], cx
mov ebx, dword [esi + 0x44]
mov eax, dword [0xa0fc80]
add dx, word [ebx + 0xa]
add dword [0xa0fc80], 0xc
mov word [eax*2 + 0x933bde], dx
add dword [0x97869c], 4
cmp dword [0x97842c], 0x3f3
jge 0x554947
cmp dword [0x975330], 0x1fb
jl 0x5549ce
cmp dword [0x975330], 0x180
je 0x5549ce
mov ecx, dword [0xa10744]
mov eax, dword [ecx]
push eax
push 1
call fcn.00649bf0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
mov eax, dword [0x975330]
pop ecx
add eax, 0xfffffe80
pop ecx
push 1
push 0
push eax
push 0x7ed410
call fcn.0065aee0
add esp, 0x10
test eax, eax
je 0x5549ba
mov eax, dword [0x97842c]
add eax, 0xfffffd00
push eax
push 0x9341c8
push 3
call fcn.0065afe0
add esp, 0xc
call fcn.0065afb0
mov dword [0x97842c], 0x300
mov dword [0x975330], 0x180
fld dword [esp + 0xc]
fcomp dword [0x6974a0]
fnstsw ax
mov bl, 0x64
test ah, 0x45
jne 0x554a27
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 [0x975330]
imul eax, eax, 0x24
mov dword [eax + 0x7e9e28], ebx
mov dword [eax + 0x7e9e4c], ebx
mov dword [eax + 0x7e9e70], ebx
mov dword [eax + 0x7e9e94], ebx
mov eax, 0x7e46a0
fmul dword [eax + 8]
fmul dword [0x6974ec]
fstp dword [esp + 8]
push dword [eax + 4]
push dword [eax]
call fcn.004a5600
fmul dword [0x6974f0]
mov bx, word [0x975330]
mov dx, word [0x975330]
pop ecx
pop ecx
fstp dword [esp + 4]
movzx eax, word [ebp + 0x5a]
mov bp, word [0x975330]
mov cx, word [0x975330]
and eax, 0xf
mov dword [esp + 0x48], eax
mov eax, dword [0x975330]
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 + 0x7e9e2c]
fld dword [esp + 8]
fstp dword [eax + 0x7e9e30]
fld dword [0x6974ec]
fadd dword [esp + 4]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [eax + 0x7e9e50]
fld dword [esp + 8]
fstp dword [eax + 0x7e9e54]
fld dword [esp + 4]
fstp dword [eax + 0x7e9e74]
fld dword [0x6974ec]
fadd dword [esp + 8]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp dword [eax + 0x7e9e78]
fld dword [esp + 0x40]
fstp dword [eax + 0x7e9e98]
fld dword [esp + 0x44]
fstp dword [eax + 0x7e9e9c]
fld dword [esp + 0x10]
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e14]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e18]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e38]
fld dword [esp + 0x24]
fstp dword [eax + 0x7e9e3c]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e5c]
fld dword [esp + 0x30]
fstp dword [eax + 0x7e9e60]
fld dword [esp + 0x34]
fstp dword [eax + 0x7e9e7c]
fld dword [esp + 0x38]
fstp dword [eax + 0x7e9e80]
fld dword [esp + 0x3c]
fstp dword [eax + 0x7e9e84]
mov eax, dword [esi + 0x44]
add bp, word [eax]
mov eax, dword [0x97842c]
add ebp, 0xfffffe80
mov word [eax*2 + 0x933bc8], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 2]
mov eax, dword [0x97842c]
add ebx, 0xfffffe80
mov bp, word [0x975330]
mov word [eax*2 + 0x933bca], bx
mov eax, dword [esi + 0x44]
add dx, word [eax + 4]
mov eax, dword [0x97842c]
add edx, 0xfffffe80
mov bx, word [0x975330]
mov word [eax*2 + 0x933bcc], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 8]
mov eax, dword [0x97842c]
add ecx, 0xfffffe80
mov dx, word [0x975330]
mov word [eax*2 + 0x933bce], cx
mov eax, dword [esi + 0x44]
add bp, word [eax + 0xa]
mov eax, dword [0x97842c]
add ebp, 0xfffffe80
mov cx, word [0x975330]
mov word [eax*2 + 0x933bd0], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 0xc]
mov eax, dword [0x97842c]
add ebx, 0xfffffe80
mov bp, word [0x975330]
mov word [eax*2 + 0x933bd2], bx
mov eax, dword [esi + 0x44]
add dx, word [eax]
mov eax, dword [0x97842c]
add edx, 0xfffffe80
mov bx, word [0x975330]
mov word [eax*2 + 0x933bd4], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 4]
mov eax, dword [0x97842c]
add ecx, 0xfffffe80
mov dx, word [0x975330]
mov word [eax*2 + 0x933bd6], cx
mov eax, dword [esi + 0x44]
add bp, word [eax + 2]
mov eax, dword [0x97842c]
add ebp, 0xfffffe80
mov cx, word [0x975330]
mov word [eax*2 + 0x933bd8], bp
mov eax, dword [esi + 0x44]
add bx, word [eax + 8]
mov eax, dword [0x97842c]
add ebx, 0xfffffe80
mov word [eax*2 + 0x933bda], bx
mov eax, dword [esi + 0x44]
add dx, word [eax + 0xc]
mov eax, dword [0x97842c]
add edx, 0xfffffe80
mov word [eax*2 + 0x933bdc], dx
mov eax, dword [esi + 0x44]
add cx, word [eax + 0xa]
mov eax, dword [0x97842c]
add ecx, 0xfffffe80
add dword [0x97842c], 0xc
add dword [0x975330], 4
mov word [eax*2 + 0x933bde], cx
add esp, 0xc0
pop ebp
pop esi
pop ebx
ret