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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x98
cmp byte [0xa10b3e], 0
jne 0x563cfc
cmp byte [0xa10b7f], 0
je 0x563d10
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0xac], 0x21
je 0x563d42
mov eax, dword [esp + 0xac]
add eax, 0xffffffc7
cmp eax, 2
jbe 0x563d42
mov eax, dword [esp + 0xac]
add eax, 0xffffffbd
cmp eax, 2
jbe 0x563d42
cmp dword [esp + 0xac], 0x3f
jne 0x563d60
mov eax, dword [0xa0d8a0]
and eax, dword [0x698300]
je 0x563d60
xor eax, eax
add esp, 0x98
pop ebp
pop edi
pop esi
pop ebx
ret
cmp byte [0xa10afe], 1
je 0x563d94
push dword [esp + 0xc0]
push dword [esp + 0xc0]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.006245e0
add esp, 0x14
mov ebp, dword [0x980034]
test ebp, ebp
fldz
fldz
jne 0x563db1
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, 0x975430
fld dword [ebx + 0x18]
fstp st(2)
fld st(1)
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x563e60
mov esi, 0x7e46c0
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 0x563e60
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 0x563e80
mov eax, dword [esp + 0xd0]
jmp 0x563e83
mov eax, dword [ebx + 0x50]
add eax, dword [0x974b34]
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 0x563eb0
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 0x563ed4
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 0x563ef5
mov al, byte [esp + 0xcc]
jmp 0x563ef8
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 0x563f50
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 0x5648d6
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.005778d0
add esp, 0x14
test al, al
jne 0x563f83
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 0x564020
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 0x5641d7
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 0x564048
add eax, dword [0x974b34]
mov dword [ebp + 0x1c], eax
mov dl, byte [ebx + 0x74]
test dl, dl
je 0x5641d7
movzx eax, dl
mov dword [esp + 8], eax
call fcn.00649a40
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 0x564172
xor edx, edx
jmp 0x56417f
cmp edx, 0xff
jle 0x56417f
mov edx, 0xff
cmp dword [esp + 0xc], 0
jge 0x564190
mov dword [esp + 0xc], 0
jmp 0x5641a2
cmp dword [esp + 0xc], 0xff
jle 0x5641a2
mov dword [esp + 0xc], 0xff
cmp dword [esp + 0x1c], 0
jge 0x5641b3
mov dword [esp + 0x1c], 0
jmp 0x5641c5
cmp dword [esp + 0x1c], 0xff
jle 0x5641c5
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 0x5641f6
mov ax, word [esp + 0xc4]
jmp 0x5641fa
mov ax, word [ebx + 0x44]
mov word [ebp + 0x4a], ax
call fcn.00649a40
movzx eax, ax
and eax, 1
je 0x564216
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 0x5642c5
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp]
fstp dword [ebp]
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 4]
fstp dword [ebp + 4]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x5642c5
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebx + 0x58]
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x564374
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 0x10]
fstp dword [ebp + 0x10]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x564374
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 0x14]
fstp dword [ebp + 0x14]
fld dword [ebx + 0x5c]
fcomp dword [0x698310]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5643c5
mov eax, dword [ebx + 0x6c]
and eax, 8
jne 0x5643c5
call fcn.00649a40
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 + 0x7d54b0]
fadd st(1)
fadd dword [ebp + 0x40]
fstp dword [ebp + 0x40]
fstp st(0)
cmp dword [ebx + 0x60], 0
je 0x5643e6
call fcn.00649a40
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 0x5648e0
call fcn.00649a40
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 + 0x7d54b0]
fcom dword [0x698310]
fnstsw ax
test ah, 0x45
jne 0x564490
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 0x5648f0
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 0x5648f7
cmp byte [0x77e8fd], 0
jne 0x564511
mov byte [0x77e8fd], 1
cmp byte [0x77e911], 0
jne 0x564528
mov byte [0x77e911], 1
mov byte [0x77e910], 0
cmp byte [0x77e910], 0
je 0x5645a0
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 0x56456a
mov eax, dword [esp + 0xb0]
fld dword [eax + 4]
fcomp dword [0x77e904]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x56456a
mov dl, 1
test dl, dl
je 0x56458a
mov eax, dword [esp + 0xb0]
fld dword [eax + 8]
fcomp dword [0x77e908]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x56458a
mov cl, 1
test cl, cl
je 0x5645a0
fld dword [0x77e90c]
fstp dword [ebp + 0x20]
jmp 0x564900
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.004d8b20
add esp, 0x2c
test al, al
fldz
je 0x564680
fld dword [esp + 0x58]
fst st(1)
fcomp dword [ebp + 8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x564670
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 0x564907
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 0x56470d
cmp byte [0x77e918], 0
jne 0x5646b4
mov byte [0x77e918], 1
mov dword [0x77e914], 0
mov eax, dword [ebx + 0x6c]
and eax, 0x2000
je 0x564704
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.004d53c0
add esp, 0x10
cmp byte [esp + 0x7f], 0
fstp dword [0x77e914]
je 0x5646f7
fld dword [0x77e914]
fstp dword [ebp + 0x20]
jmp 0x564704
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 0x564770
sub eax, 0x21
je 0x5647a0
sub eax, 1
je 0x564818
sub eax, 6
jne 0x564891
call fcn.00649a40
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 + 0x7d54b0]
fadd dword [ebp + 8]
jmp 0x56488e
call fcn.00649a40
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 0x564891
call fcn.00649a40
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.00649a40
and eax, 7
mov word [ebp + 0x48], ax
call fcn.00649a40
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.00649a40
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 0x56488e
call fcn.00649a40
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.00649a40
and eax, 7
mov word [ebp + 0x48], ax
call fcn.00649a40
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.00649a40
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 0x5648b2
fld dword [esp + 0xbc]
fstp dword [ebp + 0x3c]
mov eax, dword [ebp + 0x54]
mov dword [0x980034], 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 0x563fac
fldz
fldz
jmp 0x5644f5
fldz
jmp 0x5644f5
fcompp
jmp 0x564690
fcompp
jmp 0x564690
fstp st(0)
jmp 0x564690