Function at 0x14008b130
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x250
vmovaps xmmword [rax - 0x48], xmm6
vmovaps xmmword [rax - 0x58], xmm7
vmovaps xmmword [rax - 0x68], xmm8
vmovaps xmmword [rax - 0x78], xmm9
vmovaps xmmword [rax - 0x88], xmm10
vmovaps xmmword [rax - 0x98], xmm11
vmovaps xmmword [rax - 0xa8], xmm12
vmovaps xmmword [rax - 0xb8], xmm13
vmovaps xmmword [rax - 0xc8], xmm14
vmovaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x140113010]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
mov r14d, r8d
mov dword [rsp + 0x48], r8d
mov rbx, rdx
mov qword [rsp + 0x70], rdx
mov r13, rcx
mov qword [rsp + 0x50], rcx
mov rsi, qword [0x140138b70]
mov rax, qword [rsi + 0x3ef8]
mov byte [rax + 0xb8], 1
mov rdi, qword [rsi + 0x3ef8]
mov qword [rsp + 0xc8], rdi
cmp byte [rdi + 0xbb], 0
je 0x14008b1e7
xor al, al
jmp 0x14008c60f
vmovss xmm0, dword [rdi + 0x28]
vsubss xmm0, xmm0, dword [0x140102ca4]
vmovss xmm15, dword [0x140102d94]
vmovaps xmm1, xmm15
call fcn.14005d750
vmovss xmm0, dword [rsi + 0x3810]
vaddss xmm1, xmm0, xmm0
vaddss xmm10, xmm1, dword [rsi + 0x3c20]
vmovss dword [rsp + 0x4c], xmm10
mov rax, qword [rsi + 0x3ef8]
test byte [rsi + 0x4780], 1
je 0x14008b23a
vmovss xmm1, dword [rsi + 0x4784]
jmp 0x14008b242
vmovss xmm1, dword [rax + 0x1f0]
vxorps xmm9, xmm9, xmm9
vmovss xmm11, dword [0x140102bb0]
vcomiss xmm1, xmm9
jae 0x14008b28b
vmovss xmm0, dword [rax + 0x2a8]
cmp qword [rax + 0x1d8], 0
jne 0x14008b272
cmp qword [rsi + 0x4b58], 0
je 0x14008b27a
vmovss xmm0, dword [rax + 0x268]
vsubss xmm0, xmm0, dword [rax + 0x100]
vaddss xmm1, xmm0, xmm1
vmaxss xmm1, xmm1, xmm11
vcvttss2si eax, xmm1
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmovss dword [rsp + 0x8c], xmm0
test r14b, 0x10
je 0x14008b2ad
vxorps xmm13, xmm13, xmm13
jmp 0x14008b2b5
vaddss xmm13, xmm10, dword [rsi + 0x3824]
vsubss xmm12, xmm0, xmm13
mov qword [rsp + 0x80], r13
cmp r13, 0xffffffffffffffff
jae 0x14008b2fb
mov r14, r13
nop dword [rax + rax]
movzx ecx, byte [r14]
test cl, cl
je 0x14008b2f6
lea rax, [r14 + 1]
cmp cl, 0x23
jne 0x14008b2e5
cmp byte [rax], cl
je 0x14008b2f6
mov r14, rax
mov qword [rsp + 0x80], rax
cmp rax, 0xffffffffffffffff
jb 0x14008b2d0
mov r14d, dword [rsp + 0x48]
xor eax, eax
mov dword [rsi + 0x4780], eax
call fcn.14005d9c0
mov rcx, r13
call fcn.14005ab60
mov eax, dword [rsi + 0x5b50]
mov dword [rsp + 0x94], eax
test eax, eax
jne 0x14008b339
movsxd rcx, dword [rdi + 0xf0]
mov rax, qword [rdi + 0xf8]
mov ecx, dword [rax + rcx*4 - 4]
mov dword [rsi + 0x5b50], ecx
mov dword [rsp + 0x88], r14d
test r14b, 0x20
je 0x14008b355
and r14d, 0xff9fffff
or r14d, 0x100008
test r14b, 8
jne 0x14008b366
mov edx, r14d
mov rcx, rbx
call fcn.14008f8e0
mov ecx, dword [rsi + 0x5b4c]
test r14d, 0x700000
jne 0x14008b37f
mov eax, ecx
and eax, 0x700000
or r14d, eax
test r14d, 0x1800000
jne 0x14008b392
mov eax, ecx
and eax, 0x1800000
or r14d, eax
test r14d, 0x6000000
jne 0x14008b3a5
mov eax, ecx
and eax, 0x6000000
or r14d, eax
test r14d, 0x18000000
jne 0x14008b3b8
mov eax, ecx
and eax, 0x18000000
or r14d, eax
and ecx, 0xe00fffff
or r14d, ecx
mov dword [rsp + 0x48], r14d
mov eax, r14d
shr eax, 1
not al
and al, 1
movzx r15d, al
mov dword [rsp + 0x7c], r15d
mov r12d, r14d
shr r12d, 0x13
and r12b, 1
lea ecx, [r15 + 3]
mov dword [rsp + 0x44], ecx
vmovss xmm6, dword [rbx]
vmovss dword [rsp + 0x128], xmm6
lea rax, [rbx + 4]
mov qword [rsp + 0x98], rax
vmovss xmm7, dword [rax]
vmovss dword [rsp + 0x12c], xmm7
vmovss xmm8, dword [rbx + 8]
vmovss dword [rsp + 0x130], xmm8
test r15b, r15b
je 0x14008b42b
vmovss xmm5, dword [rbx + 0xc]
jmp 0x14008b430
vmovaps xmm5, xmm11
vmovss dword [rsp + 0x134], xmm5
mov eax, r14d
and eax, 0x10100000
mov dword [rsp + 0x90], eax
cmp eax, 0x10100000
jne 0x14008b485
lea rax, [rsp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x12c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x128]
vmovaps xmm2, xmm8
vmovaps xmm1, xmm7
vmovaps xmm0, xmm6
call fcn.14004d9f0
jmp 0x14008b4e8
mov eax, r14d
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x14008b510
lea rax, [rsp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x12c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x128]
vmovaps xmm2, xmm8
vmovaps xmm1, xmm7
vmovaps xmm0, xmm6
call fcn.14004d910
lea r9, [rsp + 0x130]
lea r8, [rsp + 0x12c]
lea rdx, [rsp + 0x128]
mov rcx, rbx
call fcn.14008b080
mov ecx, dword [rsp + 0x44]
vmovss xmm6, dword [rsp + 0x128]
vmovss xmm7, dword [rsp + 0x12c]
vmovss xmm8, dword [rsp + 0x130]
vmovss xmm5, dword [rsp + 0x134]
vcmpless xmm0, xmm9, xmm6
vmovss xmm4, dword [0x140102b5c]
vmovss xmm3, dword [0x140102d84]
vblendvps xmm0, xmm3, xmm4, xmm0
vmovss xmm2, dword [0x140102d00]
vfmadd231ss xmm0, xmm6, xmm2
vcvttss2si eax, xmm0
mov dword [rsp + 0x140], eax
vcmpless xmm0, xmm9, xmm7
vblendvps xmm1, xmm3, xmm4, xmm0
vfmadd231ss xmm1, xmm7, xmm2
vcvttss2si eax, xmm1
mov dword [rsp + 0x144], eax
vcmpless xmm0, xmm9, xmm8
vblendvps xmm1, xmm3, xmm4, xmm0
vfmadd231ss xmm1, xmm8, xmm2
vcvttss2si eax, xmm1
mov dword [rsp + 0x148], eax
vcmpless xmm0, xmm9, xmm5
vblendvps xmm1, xmm3, xmm4, xmm0
vfmadd231ss xmm1, xmm5, xmm2
vcvttss2si eax, xmm1
mov dword [rsp + 0x14c], eax
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x41], 0
vmovss xmm7, dword [rdi + 0x100]
vmovss dword [rsp + 0x110], xmm7
vmovss xmm14, dword [rdi + 0x104]
xor r10d, r10d
vmovd xmm1, r10d
vmovd xmm0, dword [rsi + 0x3864]
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm0, xmm9, xmm13, xmm2
vaddss xmm1, xmm7, xmm0
vmovss dword [rdi + 0x100], xmm1
mov eax, r14d
and eax, 0x20
mov dword [rsp + 0x78], eax
test r14d, 0x300000
je 0x14008bc12
test eax, eax
jne 0x14008bc12
lea eax, [rcx - 1]
vxorps xmm4, xmm4, xmm4
vcvtsi2ss xmm4, xmm4, eax
vmovss xmm3, dword [rsi + 0x3824]
vmovaps xmm1, xmm12
vfnmadd231ss xmm1, xmm3, xmm4
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm1, xmm1, xmm0
vcvttss2si eax, xmm1
vxorps xmm2, xmm2, xmm2
vcvtsi2ss xmm2, xmm2, eax
vmaxss xmm8, xmm2, xmm11
vaddss xmm0, xmm3, xmm8
vmovaps xmm1, xmm12
vfnmadd231ss xmm1, xmm4, xmm0
vcvttss2si eax, xmm1
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmaxss xmm10, xmm0, xmm11
mov r15d, r14d
and r15d, 0x1000000
lea rcx, str.M:0.000
lea rax, str.M:000
cmovne rax, rcx
mov rbx, qword [0x140138b70]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rax
vmovss dword [rsp + 0x20], xmm15
vmovss xmm2, dword [rbx + 0x3c20]
lea rdx, [rsp + 0x118]
mov rcx, qword [rbx + 0x3c18]
call fcn.140079040
vmovss xmm0, dword [rsp + 0x118]
vaddss xmm1, xmm0, dword [0x140102ba8]
vcvttss2si eax, xmm1
vxorps xmm2, xmm2, xmm2
vcvtsi2ss xmm2, xmm2, eax
vcomiss xmm2, xmm8
setae al
test al, al
je 0x14008b6d7
xor r10d, r10d
mov r13d, r10d
jmp 0x14008b6ec
bt r14d, 0x15
mov r10d, 0
mov r13d, r10d
setb r13b
inc r13
mov edi, r10d
mov r9d, dword [rsp + 0x44]
test r9d, r9d
je 0x14008b82d
test r15d, r15d
je 0x14008bb02
vmovd xmm1, r10d
movzx eax, r12b
vmovd xmm0, eax
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm6, xmm9, xmm11, xmm2
mov eax, r14d
and eax, 8
mov dword [rsp + 0x108], eax
lea r12, [0x1401027d0]
lea r15, [rsp + 0x128]
shl r13, 5
sub r13, r12
lea rax, [0x140000000]
lea r14, [rax + 0x102850]
add r14, r13
vmovss xmm7, dword [0x140102a8c]
mov r13d, dword [rsp + 0x108]
test edi, edi
je 0x14008b777
vmovss xmm1, dword [rsi + 0x3824]
vmovaps xmm0, xmm9
call fcn.14005d750
or dword [rbx + 0x4780], 1
lea eax, [rdi + 1]
mov edi, eax
vmovd xmm1, eax
vmovd xmm0, r9d
vpcmpgtd xmm2, xmm0, xmm1
vblendvps xmm0, xmm10, xmm8, xmm2
vmovss dword [rbx + 0x4784], xmm0
mov rax, qword [r14 + r12]
vmovss dword [rsp + 0x108], xmm6
vmovss dword [rsp + 0x118], xmm9
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x108]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x20], rax
vmovaps xmm3, xmm7
mov r8, r15
mov edx, 8
mov rcx, qword [r12]
call fcn.1400834f0
movzx edx, byte [rsp + 0x40]
or dl, al
mov byte [rsp + 0x40], dl
or byte [rsp + 0x41], dl
test r13d, r13d
jne 0x14008b801
call fcn.14005ef30
add r15, 4
add r12, 8
mov r9d, dword [rsp + 0x44]
cmp edi, r9d
jge 0x14008b81f
mov rbx, qword [0x140138b70]
jmp 0x14008b761
vmovss xmm7, dword [rsp + 0x110]
mov r14d, dword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
vmovss xmm10, dword [rsp + 0x4c]
xor ebx, ebx
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14013a218], eax
jle 0x14008b917
lea rcx, [0x14013a218]
call fcn.140098f48
cmp dword [0x14013a218], 0xffffffff
jne 0x14008b917
vpxor xmm0, xmm0, xmm0
vmovups ymmword [0x14013a220], ymm0
vmovups ymmword [0x14013a240], ymm0
vmovss dword [0x14013a220], xmm9
mov qword [0x14013a228], rbx
mov qword [0x14013a230], rbx
mov ecx, 0x38
vzeroupper
call fcn.140098fc0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x14013a228], rax
mov qword [0x14013a238], rbx
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [0x14013a240], xmm0
mov qword [0x14013a250], 7
mov qword [0x14013a258], 8
vmovss dword [0x14013a220], xmm11
mov r8, rax
mov edx, 0x10
lea rcx, [0x14013a238]
call fcn.1400115f0
nop
lea rcx, [0x1400a3880]
call fcn.140099304
nop
lea rcx, [0x14013a218]
call fcn.140098edc
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0xa8], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rsp + 0xb8], xmm1
mov r15, 0xffffffffffffffff
mov r8, r15
nop dword [rax + rax]
inc r8
cmp byte [r8 + r13], 0
jne 0x14008b940
mov rdx, r13
lea rcx, [rsp + 0xa8]
call fcn.140004b90
lea rdx, [rsp + 0xa8]
mov r12, qword [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, r12
movabs rdi, 0xcbf29ce484222325
mov r9, rdi
mov rcx, rbx
movabs r10, 0x100000001b3
mov r8, qword [rsp + 0xb8]
test r8, r8
je 0x14008b9b3
nop
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x14008b9a0
lea r8, [rsp + 0xa8]
lea rdx, [rsp + 0xf8]
call fcn.140094790
mov rcx, qword [rax + 8]
mov rax, qword [0x14013a228]
mov rbx, rax
test rcx, rcx
cmovne rbx, rcx
mov rcx, qword [rsp + 0xc0]
cmp rcx, 0x10
jb 0x14008ba24
lea rdx, [rcx + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x14008ba15
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14008bee6
mov rcx, r12
call fcn.14009931c
mov rax, qword [0x14013a228]
cmp rbx, rax
jne 0x14008bef5
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0xa8], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rsp + 0xb8], xmm1
mov r8, r15
nop word [rax + rax]
inc r8
cmp byte [r8 + r13], 0
jne 0x14008ba50
mov rdx, r13
lea rcx, [rsp + 0xa8]
call fcn.140004b90
nop
vmovups ymm1, ymmword [rsp + 0xa8]
vmovups ymmword [rsp + 0xd0], ymm1
vmovdqu xmm0, xmmword [0x140102e00]
vmovdqu xmmword [rsp + 0xb8], xmm0
mov byte [rsp + 0xa8], 0
vmovss dword [rsp + 0xf0], xmm9
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0x50]
vzeroupper
call fcn.140093870
nop
mov rdx, qword [rsp + 0xe8]
cmp rdx, 0x10
jb 0x14008be1b
inc rdx
mov rcx, qword [rsp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14008be15
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14008be15
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
test r9d, r9d
je 0x14008b82d
mov r15, r10
mov edi, 0xff
test r12b, r12b
cmovne edi, r10d
mov eax, r14d
and eax, 8
mov dword [rsp + 0x108], eax
shl r13, 5
lea r12, [0x1401027d0]
mov r14d, r10d
lea r8, [0x140000000]
mov edx, r14d
test r14d, r14d
je 0x14008bb56
vmovss xmm1, dword [rsi + 0x3824]
vmovaps xmm0, xmm9
call fcn.14005d750
or dword [rbx + 0x4780], 1
lea eax, [r14 + 1]
mov r14d, eax
vmovd xmm1, eax
vmovd xmm0, r9d
vpcmpgtd xmm2, xmm0, xmm1
vblendvps xmm0, xmm10, xmm8, xmm2
vmovss dword [rbx + 0x4784], xmm0
lea rax, [r15*8]
add rax, r13
mov rcx, qword [rax + r8 + 0x1027f0]
mov dword [rsp + 0x110], edi
mov dword [rsp + 0x118], r10d
lea r8, [rsp + 0x140]
lea r8, [r8 + rdx*4]
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x20], rax
vmovaps xmm3, xmm11
mov edx, 4
mov rcx, qword [r12 + r15*8]
call fcn.1400834f0
or byte [rsp + 0x40], al
cmp dword [rsp + 0x108], 0
jne 0x14008bbf2
call fcn.14005ef30
inc r15
mov r9d, dword [rsp + 0x44]
cmp r15, r9
jge 0x14008b828
mov rbx, qword [0x140138b70]
xor r10d, r10d
jmp 0x14008bb35
bt r14d, 0x16
jae 0x14008b838
test eax, eax
jne 0x14008b838
mov edi, 0xff
test r15b, r15b
je 0x14008bcae
mov edx, dword [rsp + 0x14c]
test edx, edx
jns 0x14008bc3f
mov edx, r10d
jmp 0x14008bc44
cmp edx, edi
cmovg edx, edi
mov ecx, dword [rsp + 0x148]
test ecx, ecx
jns 0x14008bc54
mov ecx, r10d
jmp 0x14008bc59
cmp ecx, edi
cmovg ecx, edi
mov eax, dword [rsp + 0x144]
test eax, eax
jns 0x14008bc69
mov eax, r10d
jmp 0x14008bc6e
cmp eax, edi
cmovg eax, edi
mov r9d, dword [rsp + 0x140]
test r9d, r9d
jns 0x14008bc80
mov r9d, r10d
jmp 0x14008bc87
cmp r9d, edi
cmovg r9d, edi
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
lea r8, [0x1401022a0]
mov edx, 0x40
lea rcx, [rsp + 0x160]
call fcn.14004d140
jmp 0x14008bd12
mov ecx, dword [rsp + 0x148]
test ecx, ecx
jns 0x14008bcbe
mov ecx, r10d
jmp 0x14008bcc3
cmp ecx, edi
cmovg ecx, edi
mov eax, dword [rsp + 0x144]
test eax, eax
jns 0x14008bcd3
mov eax, r10d
jmp 0x14008bcd8
cmp eax, edi
cmovg eax, edi
mov r9d, dword [rsp + 0x140]
test r9d, r9d
jns 0x14008bcea
mov r9d, r10d
jmp 0x14008bcf1
cmp r9d, edi
cmovg r9d, edi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
lea r8, [0x1401022d8]
mov edx, 0x40
lea rcx, [rsp + 0x160]
call fcn.14004d140
mov rax, qword [0x140138b70]
or dword [rax + 0x4780], 1
vmovss dword [rax + 0x4784], xmm12
vmovss dword [rsp + 0x50], xmm9
vmovss dword [rsp + 0x54], xmm9
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 6
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9d, [rbx + 0x40]
lea r8, [rsp + 0x160]
xor edx, edx
lea rcx, str.Text
call fcn.140087910
test al, al
je 0x14008be01
mov byte [rsp + 0x40], 1
lea rcx, [rsp + 0x160]
movzx eax, byte [rcx]
cmp al, 0x23
je 0x14008bd90
cmp al, 0x20
je 0x14008bd90
cmp al, 9
jne 0x14008bd95
inc rcx
jmp 0x14008bd81
mov qword [rsp + 0x144], rbx
mov dword [rsp + 0x140], ebx
mov dword [rsp + 0x14c], edi
lea r9, [rsp + 0x144]
lea r8, [rsp + 0x140]
test r15b, r15b
je 0x14008bde8
lea rax, [rsp + 0x14c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x148]
mov qword [rsp + 0x20], rax
lea rdx, str._02X_02X_02X_02X
call fcn.14004b3a0
jmp 0x14008be01
lea rax, [rsp + 0x148]
mov qword [rsp + 0x20], rax
lea rdx, str._02X_02X_02X
call fcn.14004b3a0
test r14b, 8
jne 0x14008b83a
call fcn.14005ef30
jmp 0x14008b83a
call fcn.14009931c
nop
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x50], xmm0
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rsp + 0x60], xmm1
nop
inc r15
cmp byte [r15 + r13], 0
jne 0x14008be30
mov r8, r15
mov rdx, r13
lea rcx, [rsp + 0x50]
call fcn.140004b90
lea rdx, [rsp + 0x50]
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0x68]
cmp r12, 0x10
cmovae rdx, r15
xor ecx, ecx
mov r8, qword [rsp + 0x60]
test r8, r8
je 0x14008be93
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor rdi, rax
imul rdi, r9
inc rcx
cmp rcx, r8
jb 0x14008be80
mov r9, rdi
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0xa8]
call fcn.140094790
mov rcx, qword [rax + 8]
mov rbx, qword [0x14013a228]
test rcx, rcx
cmovne rbx, rcx
cmp r12, 0x10
jb 0x14008bef5
lea rdx, [r12 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x14008beed
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14008beed
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.14009931c
vmovss xmm2, dword [rbx + 0x30]
vmovss xmm1, dword [0x140102ab8]
vfnmadd213ss xmm1, xmm2, xmm1
vaddss xmm0, xmm1, xmm2
vmovss dword [rbx + 0x30], xmm0
xor edi, edi
mov r12d, edi
test r14b, 0x10
jne 0x14008c2b5
cmp dword [rsp + 0x78], edi
jne 0x14008bf37
cmp dword [rsi + 0x3864], edi
je 0x14008bf37
vaddss xmm0, xmm12, dword [rsi + 0x3824]
jmp 0x14008bf3c
vmovaps xmm0, xmm9
vaddss xmm0, xmm7, xmm0
mov rax, qword [rsp + 0xc8]
vmovss dword [rax + 0x100], xmm0
vmovss dword [rax + 0x104], xmm14
mov rax, qword [rsp + 0x70]
cmp byte [rsp + 0x7c], dil
je 0x14008bf69
vmovss xmm11, dword [rax + 0xc]
vmovss xmm0, dword [rax]
vmovss dword [rsp + 0x118], xmm0
vmovss xmm1, dword [rax + 4]
vmovss dword [rsp + 0x11c], xmm1
vmovss xmm0, dword [rax + 8]
vmovss dword [rsp + 0x120], xmm0
vmovss dword [rsp + 0x124], xmm11
vmovss xmm1, dword [0x140102c88]
vmovss dword [rsp + 0x50], xmm1
vmovss dword [rsp + 0x54], xmm1
lea r9, [rsp + 0x50]
mov r8d, r14d
lea rdx, [rsp + 0x118]
lea rcx, str.ColorButton
call fcn.14008edd0
test al, al
je 0x14008c039
test r14b, 4
jne 0x14008c039
vmovups xmm0, xmmword [rsp + 0x118]
vmovups xmmword [rsi + 0x5b64], xmm0
lea rcx, str.picker
call fcn.14005e740
vmovss xmm2, dword [rsi + 0x47a0]
vmovss xmm0, dword [rsi + 0x3820]
vaddss xmm1, xmm0, dword [rsi + 0x47ac]
mov rax, qword [0x140138b70]
or dword [rax + 0x47d0], 1
vmovss dword [rax + 0x47e4], xmm2
vmovss dword [rax + 0x47e8], xmm1
mov qword [rax + 0x47ec], rdi
mov dword [rax + 0x47d4], 1
test r14b, 8
jne 0x14008c044
call fcn.14005ef30
vmovss xmm0, dword [0x140102c80]
vmovss dword [rsp + 0x50], xmm0
vmovss dword [rsp + 0x54], xmm0
lea rdx, [rsp + 0x50]
mov r15d, 2
mov ecx, r15d
call fcn.14004e020
mov rdi, qword [0x140138b70]
mov dword [rsp + 0x50], 9
vmovss xmm0, dword [rdi + 0x3804]
vmovss dword [rsp + 0x54], xmm0
lea rcx, [rdi + 0x4850]
lea rdx, [rsp + 0x50]
call fcn.1400661a0
mov dword [rdi + 0x3804], 0x40400000
vmovss xmm1, dword [rbx + 0x30]
xor ecx, ecx
call fcn.14004dfa0
mov rax, qword [0x140138b70]
vmovups xmm0, xmmword [rax + 0x38d8]
vmovups xmmword [rsp + 0x50], xmm0
vshufps xmm0, xmm0, xmm0, 0xff
vmulss xmm0, xmm0, dword [rax + 0x37d0]
vmovss dword [rsp + 0x5c], xmm0
lea rcx, [rsp + 0x50]
call fcn.14004d860
mov edx, eax
call fcn.14004dee0
vmovups xmm6, xmmword [0x140102ed0]
mov rbx, qword [0x140138b70]
mov dword [rsp + 0x50], 5
vmovups xmm0, xmmword [rbx + 0x3908]
vmovups xmmword [rsp + 0x54], xmm0
lea rcx, [rbx + 0x4840]
lea rdx, [rsp + 0x50]
call fcn.140066290
vmovups xmmword [rbx + 0x3908], xmm6
lea rcx, str.picker
call fcn.14005ee90
test al, al
je 0x14008c254
mov rax, qword [rsi + 0x3ef8]
cmp word [rax + 0xc2], 1
jne 0x14008c1fd
mov r12, rax
mov rax, qword [rsp + 0x80]
cmp r13, rax
je 0x14008c1ad
xor r8d, r8d
mov rdx, rax
mov rcx, r13
call fcn.14007ecb0
mov rcx, qword [0x140138b70]
mov rax, qword [rcx + 0x3ef8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ef8]
cmp byte [rax + 0xbb], 0
jne 0x14008c1ad
vmovss dword [rsp + 0x50], xmm9
vmovss dword [rsp + 0x54], xmm9
vmovaps xmm1, xmm15
lea rcx, [rsp + 0x50]
call fcn.14005d450
mov rax, qword [0x140138b70]
or dword [rax + 0x4780], 1
vmulss xmm0, xmm10, dword [0x140102c78]
vmovss dword [rax + 0x4784], xmm0
lea r9, [rsi + 0x5b64]
mov r8d, dword [rsp + 0x88]
and r8d, 0x1f890002
or r8d, 0x7401a0
mov rdx, qword [rsp + 0x70]
lea rcx, [0x1401019f8]
call fcn.14008c700
or byte [rsp + 0x40], al
mov rbx, qword [0x140138b70]
mov rcx, qword [rbx + 0x3ef8]
cmp qword [rbx + 0x48d8], rcx
jne 0x14008c238
cmp byte [rbx + 0x4951], 0
je 0x14008c238
cmp dword [rbx + 0x4910], 0
jne 0x14008c238
mov eax, dword [rbx + 0x4954]
and eax, 0xfffffff2
or eax, r15d
mov dword [rbx + 0x4954], eax
test dword [rcx + 0x14], 0x1000000
je 0x14008c248
mov byte [rbx + 0x3e5e], 1
call fcn.140059cd0
mov byte [rbx + 0x3e5e], 0
mov r8, qword [0x140138b70]
mov eax, dword [r8 + 0x4840]
cmp eax, r15d
jge 0x14008c270
mov r15d, eax
test eax, eax
jle 0x14008c2ab
nop
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4848]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
vmovups xmm0, xmmword [rcx + rdx*4 - 0x10]
vmovups xmmword [r8 + rax*8 + 0x38b8], xmm0
dec dword [r8 + 0x4840]
mov eax, dword [r8 + 0x4840]
dec r15d
test r15d, r15d
jg 0x14008c270
mov ecx, 3
call fcn.14004e0b0
mov rdx, qword [rsp + 0x80]
cmp r13, rdx
je 0x14008c310
test r14b, r14b
js 0x14008c310
vmovss xmm1, dword [rsi + 0x3824]
vmovaps xmm0, xmm9
call fcn.14005d750
cmp dword [rsp + 0x78], 0
jne 0x14008c2f1
vmovss xmm0, dword [rsp + 0x8c]
vaddss xmm13, xmm0, dword [rsi + 0x3824]
vaddss xmm0, xmm13, xmm7
mov rax, qword [rsp + 0xc8]
vmovss dword [rax + 0x100], xmm0
xor r8d, r8d
mov rcx, r13
call fcn.14007ecb0
movzx edi, byte [rsp + 0x40]
test dil, dil
je 0x14008c4b9
test r12, r12
jne 0x14008c4b9
cmp byte [rsp + 0x41], r12b
jne 0x14008c348
vcvtdq2ps xmm1, xmmword [rsp + 0x140]
vmulps xmm1, xmm1, xmmword [0x140102ec0]
vmovups xmmword [rsp + 0x128], xmm1
mov eax, r14d
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x14008c41d
vmovss xmm0, dword [rsp + 0x128]
vmovss dword [rsi + 0x5b58], xmm0
vmovss xmm1, dword [rsp + 0x12c]
vmovss dword [rsi + 0x5b5c], xmm1
lea rax, [rsp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x12c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x128]
vmovss xmm2, dword [rsp + 0x130]
vmovss xmm1, dword [rsp + 0x12c]
vmovss xmm0, dword [rsp + 0x128]
call fcn.14004d9f0
mov eax, dword [rsi + 0x5b50]
mov dword [rsi + 0x5b54], eax
vmovss xmm0, dword [rsp + 0x128]
vmovss dword [rsp + 0x98], xmm0
vmovss xmm1, dword [rsp + 0x12c]
vmovss dword [rsp + 0x9c], xmm1
vmovss xmm0, dword [rsp + 0x130]
vmovss dword [rsp + 0xa0], xmm0
vmovss dword [rsp + 0xa4], xmm9
lea rcx, [rsp + 0x98]
call fcn.14004d860
mov dword [rsi + 0x5b60], eax
cmp dword [rsp + 0x90], 0x10100000
jne 0x14008c46c
lea rax, [rsp + 0x130]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x12c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x128]
vmovss xmm2, dword [rsp + 0x130]
vmovss xmm1, dword [rsp + 0x12c]
vmovss xmm0, dword [rsp + 0x128]
call fcn.14004d910
vmovss xmm0, dword [rsp + 0x128]
mov r15, qword [rsp + 0x70]
vmovss dword [r15], xmm0
vmovss xmm1, dword [rsp + 0x12c]
lea r13, [r15 + 4]
vmovss dword [r13], xmm1
vmovss xmm0, dword [rsp + 0x130]
vmovss dword [r15 + 8], xmm0
cmp byte [rsp + 0x7c], 0
je 0x14008c4c6
vmovss xmm0, dword [rsp + 0x134]
vmovss dword [r15 + 0xc], xmm0
jmp 0x14008c4c6
mov r13, qword [rsp + 0x98]
mov r15, qword [rsp + 0x70]
cmp dword [rsp + 0x94], 0
jne 0x14008c4da
mov dword [rsi + 0x5b50], 0
mov rax, qword [0x140138b70]
mov rcx, qword [rax + 0x3ef8]
dec dword [rcx + 0xf0]
call fcn.14005daf0
test byte [rsi + 0x479c], 1
je 0x14008c5b9
bt r14d, 9
jb 0x14008c5b9
call fcn.140064170
test al, al
je 0x14008c5b9
xor bl, bl
lea rcx, str._COL3F
call fcn.140064250
test rax, rax
je 0x14008c543
mov rax, qword [rax]
vmovsd xmm0, qword [rax]
vmovsd qword [r15], xmm0
mov eax, dword [rax + 8]
mov dword [r15 + 8], eax
mov bl, 1
movzx edi, bl
lea rcx, str._COL4F
call fcn.140064250
test rax, rax
je 0x14008c56d
mov r8d, dword [rsp + 0x44]
shl r8, 2
mov rdx, qword [rax]
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov dil, 1
jmp 0x14008c571
test bl, bl
je 0x14008c59d
bt r14d, 0x1c
jae 0x14008c59d
lea rax, [r15 + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov r9, r15
vmovss xmm2, dword [rax]
vmovss xmm1, dword [r13]
vmovss xmm0, dword [r15]
call fcn.14004d910
mov rax, qword [0x140138b70]
mov byte [rax + 0x4a9e], 0
cmp byte [rax + 0x4aea], 0
je 0x14008c5b9
call fcn.140063f20
test r12, r12
je 0x14008c5d7
mov eax, dword [rsi + 0x3f58]
test eax, eax
je 0x14008c5d7
cmp qword [rsi + 0x3f78], r12
jne 0x14008c5d7
mov dword [rsi + 0x4794], eax
test dil, dil
je 0x14008c60b
mov eax, dword [rsi + 0x4794]
test eax, eax
je 0x14008c60b
mov rcx, qword [0x140138b70]
mov edx, dword [rcx + 0x3f58]
cmp edx, eax
je 0x14008c5fb
test edx, edx
jne 0x14008c604
mov word [rcx + 0x3f68], 0x101
or dword [rcx + 0x479c], 4
movzx eax, dil
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.140098e80
lea r11, [rsp + 0x250]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
vmovaps xmm11, xmmword [r11 - 0x60]
vmovaps xmm12, xmmword [r11 - 0x70]
vmovaps xmm13, xmmword [r11 - 0x80]
vmovaps xmm14, xmmword [r11 - 0x90]
vmovaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret