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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x98
cmp byte [0xa10b36], 0
jne 0x563cdc
cmp byte [0xa10b76], 0
je 0x563cf0
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0xac], 0x21
je 0x563d22
mov eax, dword [esp + 0xac]
add eax, 0xffffffc7
cmp eax, 2
jbe 0x563d22
mov eax, dword [esp + 0xac]
add eax, 0xffffffbd
cmp eax, 2
jbe 0x563d22
cmp dword [esp + 0xac], 0x3f
jne 0x563d40
mov eax, dword [0xa0d898]
and eax, dword [0x698300]
je 0x563d40
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
cmp byte [0xa10af6], 1
je 0x563d74
push dword [esp + 0xc0]
push dword [esp + 0xc0]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.00624600
add esp, 0x14
mov ebp, dword [0x98002c]
test ebp, ebp
fldz
fldz
jne 0x563d91
fcompp
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
mov ebx, dword [esp + 0xac]
imul ebx, ebx, 0x94
add ebx, 0x975428
fld dword [ebx + 0x18]
fstp st(2)
fld st(1)
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x563e40
mov esi, 0x7e46b8
mov eax, dword [esp + 0xb0]
fld dword [esi]
fsub dword [eax]
mov eax, dword [esp + 0xb0]
lea edi, [esp + 0x30]
fstp dword [esp + 0x80]
fld dword [esi + 4]
fsub dword [eax + 4]
mov eax, dword [esp + 0xb0]
fstp dword [esp + 0x84]
fld dword [esi + 8]
fsub dword [eax + 8]
lea esi, [esp + 0x80]
fstp dword [esp + 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x34]
fst st(1)
fmul st(0)
fld dword [esp + 0x30]
fmul st(0)
faddp st(1)
fld dword [esp + 0x38]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x563e40
fcompp
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [ebx + 0x1c]
fstp dword [ebp + 0x3c]
fld dword [ebx + 0x20]
fstp dword [ebp + 0x40]
cmp dword [esp + 0xd0], 0
je 0x563e60
mov eax, dword [esp + 0xd0]
jmp 0x563e63
mov eax, dword [ebx + 0x50]
add eax, dword [0x974b2c]
mov dword [ebp + 0x18], eax
mov al, byte [ebx + 0x36]
mov byte [ebp + 0x3a], al
mov ax, word [ebx + 0x38]
mov word [ebp + 0x44], ax
mov cx, word [ebx + 0x34]
test cx, cx
je 0x563e90
mov ax, word [ebp + 0x44]
cwd
idiv cx
mov word [ebp + 0x44], ax
mov al, byte [ebx + 0x3a]
mov byte [ebp + 0x3b], al
mov ax, word [ebx + 0x3e]
mov word [ebp + 0x46], ax
mov si, word [ebx + 0x3c]
test si, si
je 0x563eb4
mov ax, word [ebp + 0x46]
cwd
idiv si
mov word [ebp + 0x46], ax
mov ax, word [ebx + 0x24]
mov word [ebp + 0x30], ax
fld dword [ebx + 0x2c]
fstp dword [ebp + 0x34]
cmp dword [esp + 0xcc], 0
je 0x563ed5
mov al, byte [esp + 0xcc]
jmp 0x563ed8
mov al, byte [ebx + 0x40]
mov byte [ebp + 0x4e], al
mov word [ebp + 0x32], 0
mov word [ebp + 0x38], 0
mov word [ebp + 0x48], 0
mov dword [ebp + 0x20], 0
cmp dword [esp + 0xac], 0x51
je 0x563f30
mov eax, dword [esp + 0xb0]
fld dword [eax]
fstp dword [ebp]
mov eax, dword [esp + 0xb0]
fld dword [eax + 4]
fstp dword [ebp + 4]
mov eax, dword [esp + 0xb0]
fld dword [eax + 8]
fstp dword [ebp + 8]
jmp 0x5648b6
lea eax, [esp + 0x4c]
lea edi, [esp + 0x48]
fcompp
push 1
push eax
lea eax, [esp + 0x44]
push edi
push eax
push dword [esp + 0xc0]
call fcn.005778b0
add esp, 0x14
test al, al
jne 0x563f63
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [esp + 0x3c]
fstp dword [ebp]
fld dword [esp + 0x40]
fstp dword [ebp + 4]
fld dword [esp + 0x44]
fstp dword [ebp + 8]
fld dword [esp + 0x48]
fstp dword [ebx + 0x80]
fld dword [esp + 0x4c]
fstp dword [ebx + 0x84]
mov eax, dword [esp + 0xb4]
fld dword [eax]
fstp dword [ebp + 0xc]
mov eax, dword [esp + 0xb4]
fld dword [eax + 4]
fstp dword [ebp + 0x10]
mov eax, dword [esp + 0xb4]
fld dword [eax + 8]
fstp dword [ebp + 0x14]
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x2c], 0
mov dword [ebp + 0x1c], 0
mov eax, dword [esp + 0xc0]
cmp byte [eax + 3], 0
je 0x564000
mov dl, byte [eax]
mov byte [ebp + 0x4f], dl
mov al, byte [eax + 1]
mov byte [ebp + 0x50], al
mov eax, dword [esp + 0xc0]
mov cl, byte [eax + 2]
mov byte [ebp + 0x51], cl
mov al, byte [eax + 3]
mov byte [ebp + 0x52], al
jmp 0x5641b7
mov dl, byte [ebx + 0x70]
mov byte [ebp + 0x4f], dl
mov al, byte [ebx + 0x71]
mov byte [ebp + 0x50], al
mov cl, byte [ebx + 0x72]
mov byte [ebp + 0x51], cl
mov al, byte [ebx + 0x73]
mov byte [ebp + 0x52], al
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x564028
add eax, dword [0x974b2c]
mov dword [ebp + 0x1c], eax
mov dl, byte [ebx + 0x74]
test dl, dl
je 0x5641b7
movzx eax, dl
mov dword [esp + 8], eax
call fcn.006499f0
mov edx, dword [esp + 8]
and eax, 0xffff
add edx, edx
mov dword [esp + 0x28], edx
fldz
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmulp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 8]
mov dword [esp + 0x28], eax
lea ecx, [ebp + 0x4f]
fldcw word [esp + 0x24]
fild dword [esp + 0x28]
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
fmul dword [0x6983c4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
fstp st(1)
movzx eax, byte [ecx + 2]
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x18]
fldcw word [esp + 0x24]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fldcw word [esp + 0x24]
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
add dword [esp + 0x1c], eax
test edx, edx
jge 0x564152
xor edx, edx
jmp 0x56415f
cmp edx, 0xff
jle 0x56415f
mov edx, 0xff
cmp dword [esp + 0xc], 0
jge 0x564170
mov dword [esp + 0xc], 0
jmp 0x564182
cmp dword [esp + 0xc], 0xff
jle 0x564182
mov dword [esp + 0xc], 0xff
cmp dword [esp + 0x1c], 0
jge 0x564193
mov dword [esp + 0x1c], 0
jmp 0x5641a5
cmp dword [esp + 0x1c], 0xff
jle 0x5641a5
mov dword [esp + 0x1c], 0xff
mov byte [ecx], dl
mov al, byte [esp + 0xc]
mov byte [ecx + 1], al
mov al, byte [esp + 0x1c]
fstp st(0)
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc8]
mov word [ebp + 0x4c], ax
cmp dword [esp + 0xc4], 0
je 0x5641d6
mov ax, word [esp + 0xc4]
jmp 0x5641da
mov ax, word [ebx + 0x44]
mov word [ebp + 0x4a], ax
call fcn.006499f0
movzx eax, ax
and eax, 1
je 0x5641f6
mov ax, word [ebp + 0x4a]
imul eax, eax, 0xffffffff
mov word [ebp + 0x4a], ax
fld dword [ebx + 0x54]
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5642a5
call fcn.006499f0
movzx ecx, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, ecx
mov esi, edx
imul edx
shr esi, 0x1f
sar edx, 3
add esi, edx
imul esi, esi, 0x14
sub ecx, esi
fmul dword [ecx*4 + 0x7d54a8]
fadd dword [ebp]
fstp dword [ebp]
call fcn.006499f0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x7d54a8]
fadd dword [ebp + 4]
fstp dword [ebp + 4]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x5642a5
call fcn.006499f0
movzx esi, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, esi
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub esi, edi
fmul dword [esi*4 + 0x7d54a8]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebx + 0x58]
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x564354
call fcn.006499f0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x7d54a8]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
call fcn.006499f0
movzx esi, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, esi
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub esi, edi
fmul dword [esi*4 + 0x7d54a8]
fadd dword [ebp + 0x10]
fstp dword [ebp + 0x10]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x564354
call fcn.006499f0
movzx ecx, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, ecx
mov esi, edx
imul edx
shr esi, 0x1f
sar edx, 3
add esi, edx
imul esi, esi, 0x14
sub ecx, esi
fmul dword [ecx*4 + 0x7d54a8]
fadd dword [ebp + 0x14]
fstp dword [ebp + 0x14]
fld dword [ebx + 0x5c]
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5643a5
mov eax, dword [ebx + 0x6c]
and eax, 8
jne 0x5643a5
call fcn.006499f0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x5c]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
fld st(0)
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x7d54a8]
fadd st(1)
fadd dword [ebp + 0x40]
fstp dword [ebp + 0x40]
fstp st(0)
cmp dword [ebx + 0x60], 0
je 0x5643c6
call fcn.006499f0
movzx eax, ax
mov esi, dword [ebx + 0x60]
xor edx, edx
lea edi, [esi + esi]
div edi
movsx eax, dx
sub eax, esi
add word [ebp + 0x4a], ax
cmp dword [ebx + 0x64], 0
je 0x5648c0
call fcn.006499f0
movzx ecx, ax
mov eax, 0x66666667
mov edx, ecx
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub ecx, edi
fld dword [ecx*4 + 0x7d54a8]
fcom dword [0x698310]
fnstsw ax
test ah, 0x45
jne 0x564470
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x64]
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x18]
fmul st(1)
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
fmulp st(1)
fild qword [esp + 0x28]
faddp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp qword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x18], eax
jmp 0x5648d0
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x64]
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x18]
fmul st(1)
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
fdivp st(1)
fild qword [esp + 0x28]
faddp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp qword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
fldz
mov dword [ebp + 0x18], eax
mov eax, dword [ebx + 0x6c]
and eax, 1
je 0x5648d7
cmp byte [0x77e8fd], 0
jne 0x5644f1
mov byte [0x77e8fd], 1
cmp byte [0x77e911], 0
jne 0x564508
mov byte [0x77e911], 1
mov byte [0x77e910], 0
cmp byte [0x77e910], 0
je 0x564580
mov eax, dword [esp + 0xb0]
xor cl, cl
fld dword [eax]
fcomp dword [0x77e900]
fnstsw ax
xor dl, dl
and ah, 0x44
cmp ah, 0x40
jne 0x56454a
mov eax, dword [esp + 0xb0]
fld dword [eax + 4]
fcomp dword [0x77e904]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x56454a
mov dl, 1
test dl, dl
je 0x56456a
mov eax, dword [esp + 0xb0]
fld dword [eax + 8]
fcomp dword [0x77e908]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x56456a
mov cl, 1
test cl, cl
je 0x564580
fld dword [0x77e90c]
fstp dword [ebp + 0x20]
jmp 0x5648e0
mov byte [0x77e910], 0
lea esi, [esp + 0x78]
fld dword [ebp + 8]
fadd dword [0x698318]
lea eax, [esp + 0x50]
push 0
fstp st(1)
fld dword [ebp + 4]
fadd dword [0x698310]
push 0
push 1
fstp st(2)
fld dword [ebp]
fadd dword [0x698310]
push 0
push 0
fstp dword [esp + 0xa0]
fld st(1)
fstp dword [esp + 0xa4]
fst dword [esp + 0xa8]
fcompp
push 1
push 1
push esi
push eax
lea eax, [esp + 0xb0]
push dword [0x69841c]
push eax
call fcn.004d8b00
add esp, 0x2c
test al, al
fldz
je 0x564660
fld dword [esp + 0x58]
fst st(1)
fcomp dword [ebp + 8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x564650
fst dword [ebp + 0x20]
mov eax, dword [esp + 0xb0]
mov byte [0x77e910], 1
fld dword [eax]
mov eax, dword [esp + 0xb0]
fstp dword [0x77e900]
fld dword [eax + 4]
mov eax, dword [esp + 0xb0]
fstp dword [0x77e904]
fld dword [eax + 8]
fstp dword [0x77e908]
fld dword [esp + 0x58]
fstp dword [0x77e90c]
jmp 0x5648e7
xor eax, eax
add esp, 0x98
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
xor eax, eax
add esp, 0x98
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [ebx + 0x6c]
and eax, 0x1000
je 0x5646ed
cmp byte [0x77e918], 0
jne 0x564694
mov byte [0x77e918], 1
mov dword [0x77e914], 0
mov eax, dword [ebx + 0x6c]
and eax, 0x2000
je 0x5646e4
mov byte [esp + 0x7f], 0
lea eax, [esp + 0x7f]
push eax
mov eax, dword [esp + 0xb4]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
call fcn.004d53a0
add esp, 0x10
cmp byte [esp + 0x7f], 0
fstp dword [0x77e914]
je 0x5646d7
fld dword [0x77e914]
fstp dword [ebp + 0x20]
jmp 0x5646e4
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [0x77e914]
fstp dword [ebp + 0x20]
mov edx, dword [esp + 0xac]
mov eax, edx
sub eax, 9
je 0x564750
sub eax, 0x21
je 0x564780
sub eax, 1
je 0x5647f8
sub eax, 6
jne 0x564871
call fcn.006499f0
movzx ecx, ax
mov eax, 0x66666667
fld dword [0x698420]
mov edx, ecx
mov edi, edx
imul edx
shr edi, 0x1f
fmul dword [ebx + 0x54]
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub ecx, edi
fmul dword [ecx*4 + 0x7d54a8]
fadd dword [ebp + 8]
jmp 0x56486e
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmul dword [0x698424]
fadd dword [0x698318]
fmul dword [ebp + 0x14]
fstp dword [ebp + 0x14]
jmp 0x564871
call fcn.006499f0
movzx esi, ax
and esi, 1
mov ecx, esi
lea eax, [esi*2]
shl ecx, 5
sub ecx, eax
sub byte [ebp + 0x3a], cl
call fcn.006499f0
and eax, 7
mov word [ebp + 0x48], ax
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmul dword [0x698318]
fadd dword [0x698328]
fstp dword [ebp + 0x3c]
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmul dword [0x69840c]
fadd dword [0x698404]
fsubr dword [ebp + 8]
jmp 0x56486e
call fcn.006499f0
movzx edi, ax
and edi, 1
mov edx, edi
lea eax, [edi*2]
shl edx, 5
sub edx, eax
sub byte [ebp + 0x3a], dl
call fcn.006499f0
and eax, 7
mov word [ebp + 0x48], ax
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmul dword [0x698428]
fadd dword [0x69832c]
fstp dword [ebp + 0x3c]
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x69831c]
fmul dword [0x69842c]
fadd dword [0x698430]
fsubr dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [0x698310]
fcomp dword [esp + 0xbc]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x564892
fld dword [esp + 0xbc]
fstp dword [ebp + 0x3c]
mov eax, dword [ebp + 0x54]
mov dword [0x98002c], eax
mov eax, dword [ebx + 0x90]
mov dword [ebp + 0x54], eax
mov dword [ebx + 0x90], ebp
add esp, 0x98
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x563f8c
fldz
fldz
jmp 0x5644d5
fldz
jmp 0x5644d5
fcompp
jmp 0x564670
fcompp
jmp 0x564670
fstp st(0)
jmp 0x564670