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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x278]
sub rsp, 0x350
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x18021d4c0]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov r13, rcx
xor edi, edi
mov r15d, edi
mov dword [rsp + 0x64], edi
cmp byte [0x180279d56], dil
jne 0x1800e459f
mov word [rsp + 0x7e], di
mov qword [rbp - 0x80], 0xd
mov qword [rbp - 0x78], 0xf
movsd xmm0, qword [str.colorFull_rgb]
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [0x1801ef628]
mov dword [rsp + 0x78], r8d
movzx r10d, byte [0x1801ef62c]
mov byte [rsp + 0x7c], r10b
mov byte [rsp + 0x7d], dil
movabs r9, 0xcbf29ce484222325
mov rcx, r9
mov edx, edi
movabs r11, 0x100000001b3
nop dword [rax]
movzx eax, byte [rsp + rdx + 0x70]
xor rcx, rax
imul rcx, r11
inc rdx
cmp rdx, 0xd
jb 0x1800e31b0
mov rbx, qword [r13 + 0xa0]
and rcx, rbx
mov rsi, qword [r13 + 0x88]
add rcx, rcx
mov rdx, qword [rsi + rcx*8 + 8]
mov r14, qword [r13 + 0x78]
cmp rdx, r14
je 0x1800e323e
mov r11, qword [rsi + rcx*8]
mov rdi, qword [rsp + 0x70]
lea rax, [rdx + 0x10]
mov rcx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1800e3202
mov rax, qword [rax]
cmp rcx, 0xd
jne 0x1800e3219
cmp rdi, qword [rax]
jne 0x1800e3219
cmp r8d, dword [rax + 8]
jne 0x1800e3219
cmp r10b, byte [rax + 0xc]
je 0x1800e3224
cmp rdx, r11
je 0x1800e3232
mov rdx, qword [rdx + 8]
jmp 0x1800e31f0
xor edi, edi
movabs r11, 0x100000001b3
jmp 0x1800e3241
xor edi, edi
movabs r11, 0x100000001b3
mov rdx, rdi
test rdx, rdx
je 0x1800e3251
cmp rdx, r14
je 0x1800e3251
mov rax, qword [rdx + 0x30]
jmp 0x1800e3254
mov rax, rdi
movzx eax, byte [rax + 0x28]
mov byte [rsp + 0x60], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], 0xc
mov qword [rbp - 0x78], 0xf
movsd xmm0, qword [str.colorLow_rgb]
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [0x1801ef5f8]
mov dword [rsp + 0x78], r8d
mov byte [rsp + 0x7c], r15b
mov rcx, r9
mov rdx, rdi
nop dword [rax]
movzx eax, byte [rsp + rdx + 0x70]
xor rcx, rax
imul rcx, r11
inc rdx
cmp rdx, 0xc
jb 0x1800e32a0
mov rax, rbx
and rax, rcx
add rax, rax
mov rcx, qword [rsi + rax*8 + 8]
cmp rcx, r14
je 0x1800e3315
mov r10, qword [rsi + rax*8]
mov r11, qword [rsp + 0x70]
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1800e32e3
mov rax, qword [rax]
cmp rdx, 0xc
jne 0x1800e32f4
cmp r11, qword [rax]
jne 0x1800e32f4
cmp r8d, dword [rax + 8]
je 0x1800e32ff
cmp rcx, r10
je 0x1800e330b
mov rcx, qword [rcx + 8]
jmp 0x1800e32d1
movabs r11, 0x100000001b3
jmp 0x1800e3318
movabs r11, 0x100000001b3
mov rcx, rdi
test rcx, rcx
je 0x1800e3328
cmp rcx, r14
je 0x1800e3328
mov rax, qword [rcx + 0x30]
jmp 0x1800e332b
mov rax, rdi
movzx r12d, byte [rax + 0x28]
mov word [rsp + 0x7e], di
mov qword [rbp - 0x80], 0xd
mov qword [rbp - 0x78], 0xf
movsd xmm0, qword [str.colorMain_rgb]
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [0x1801ef618]
mov dword [rsp + 0x78], r8d
movzx r10d, byte [0x1801ef61c]
mov byte [rsp + 0x7c], r10b
mov byte [rsp + 0x7d], r15b
mov rcx, r9
mov rdx, rdi
nop word [rax + rax]
movzx eax, byte [rsp + rdx + 0x70]
xor rcx, rax
imul rcx, r11
inc rdx
cmp rdx, 0xd
jb 0x1800e3380
and rbx, rcx
add rbx, rbx
mov rcx, qword [rsi + rbx*8 + 8]
cmp rcx, r14
je 0x1800e33fa
mov r11, qword [rsi + rbx*8]
mov rbx, qword [rsp + 0x70]
nop
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1800e33c2
mov rax, qword [rax]
cmp rdx, 0xd
jne 0x1800e33d9
cmp rbx, qword [rax]
jne 0x1800e33d9
cmp r8d, dword [rax + 8]
jne 0x1800e33d9
cmp r10b, byte [rax + 0xc]
je 0x1800e33e4
cmp rcx, r11
je 0x1800e33f0
mov rcx, qword [rcx + 8]
jmp 0x1800e33b0
movabs r11, 0x100000001b3
jmp 0x1800e33fd
movabs r11, 0x100000001b3
mov rcx, rdi
test rcx, rcx
je 0x1800e340d
cmp rcx, r14
je 0x1800e340d
mov rax, qword [rcx + 0x30]
jmp 0x1800e3410
mov rax, rdi
movzx edi, byte [rax + 0x28]
movups xmm8, xmmword [0x18026fe68]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], 0xc
mov qword [rbp - 0x78], 0xf
movsd xmm0, qword [str.show_offhand]
movsd qword [rsp + 0x70], xmm0
mov eax, dword [0x1801ef5c0]
mov dword [rsp + 0x78], eax
mov byte [rsp + 0x7c], r15b
xor esi, esi
mov ecx, esi
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x70]
xor r9, rax
imul r9, r11
inc rcx
cmp rcx, 0xc
jb 0x1800e3460
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 0x70]
call fcn.18004d780
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800e349b
cmp rcx, r14
je 0x1800e349b
mov rax, qword [rcx + 0x30]
jmp 0x1800e349e
mov rax, rsi
movzx eax, byte [rax + 0x28]
mov byte [rsp + 0x68], al
movdqa xmm6, xmmword [0x1801f5920]
cmp byte [rsp + 0x60], sil
je 0x1800e34bc
movups xmmword [rbp + 0x10], xmm8
jmp 0x1800e3514
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movdqu xmmword [rbp - 0x80], xmm6
movsd xmm0, qword [str.colorFull]
movsd qword [rsp + 0x70], xmm0
movzx eax, byte [0x1801ef608]
mov byte [rsp + 0x78], al
mov byte [rsp + 0x79], sil
mov r15d, 1
mov dword [rsp + 0x64], r15d
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
lea rdx, [rax + 0x28]
lea rcx, [rbp - 0x10]
call fcn.1800868e0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x10], xmm0
lea rax, [rbp + 0x10]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x10], xmm0
test r15b, 1
je 0x1800e354a
and r15d, 0xfffffffe
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e354a
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
movdqa xmm6, xmmword [0x1801f5920]
movdqa xmm7, xmmword [reloc.d2d1.dll_Ordinal_8]
test r12b, r12b
je 0x1800e3563
movups xmmword [rbp - 0x30], xmm8
mov rbx, qword [rsp + 0x70]
jmp 0x1800e35b7
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movdqu xmmword [rbp - 0x80], xmm7
movabs rbx, 0x776f4c726f6c6f63
mov qword [rsp + 0x70], rbx
mov byte [rsp + 0x78], 0
or r15d, 2
mov dword [rsp + 0x64], r15d
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
lea rdx, [rax + 0x28]
lea rcx, [rbp - 0x10]
call fcn.1800868e0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x30], xmm0
movdqa xmm6, xmmword [0x1801f5920]
lea rax, [rbp - 0x30]
movups xmm15, xmmword [rax]
test r15b, 2
je 0x1800e35f0
and r15d, 0xfffffffd
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e35f0
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.18005a910
movdqa xmm7, xmmword [reloc.d2d1.dll_Ordinal_8]
movdqa xmm6, xmmword [0x1801f5920]
test dil, dil
je 0x1800e35fc
movups xmmword [rbp - 0x30], xmm8
jmp 0x1800e365a
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movdqu xmmword [rbp - 0x80], xmm6
movsd xmm0, qword [str.colorMain]
movsd qword [rsp + 0x70], xmm0
movzx eax, byte [0x1801ef550]
mov byte [rsp + 0x78], al
mov byte [rsp + 0x79], 0
or r15d, 4
mov dword [rsp + 0x64], r15d
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
lea rdx, [rax + 0x28]
lea rcx, [rbp - 0x10]
call fcn.1800868e0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x30], xmm0
movdqa xmm7, xmmword [reloc.d2d1.dll_Ordinal_8]
lea rax, [rbp - 0x30]
movups xmm14, xmmword [rax]
test r15b, 4
je 0x1800e368d
and r15d, 0xfffffffb
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e368d
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
movdqa xmm7, xmmword [reloc.d2d1.dll_Ordinal_8]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movdqa xmm1, xmmword [reloc.OLEAUT32.dll_SysStringLen]
movdqu xmmword [rbp - 0x80], xmm1
mov edi, dword [str.height]
mov dword [rsp + 0x70], edi
movzx ebx, word [0x1801e2d50]
mov word [rsp + 0x74], bx
mov byte [rsp + 0x76], 0
movups xmmword [rbp - 0x70], xmm0
movdqu xmmword [rbp - 0x60], xmm7
movabs rax, 0x657a695374786574
mov qword [rbp - 0x70], rax
mov byte [rbp - 0x68], 0
lea rdx, [rbp - 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
mov r8b, 1
lea rdx, [rsp + 0x70]
movss xmm0, dword [rax + 0x28]
call fcn.18005ac60
movss dword [rsp + 0x64], xmm0
xorps xmm1, xmm1
movups xmmword [rsp + 0x70], xmm1
movdqa xmm2, xmmword [reloc.OLEAUT32.dll_SysStringLen]
movdqu xmmword [rbp - 0x80], xmm2
mov dword [rsp + 0x70], edi
mov word [rsp + 0x74], bx
mov byte [rsp + 0x76], 0
mov r8b, 1
lea rdx, [rsp + 0x70]
movss xmm0, dword [0x1801f53a4]
call fcn.18005ac60
movss dword [rsp + 0x6c], xmm0
cmp byte [0x18027a124], 0
je 0x1800e459f
cmp qword [0x18027a148], 0
je 0x1800e459f
call fcn.18014f3f0
test rax, rax
je 0x1800e459f
call fcn.18014f3f0
mov rcx, rax
call fcn.1800b0e00
test rax, rax
je 0x1800e459f
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movdqa xmm1, xmmword [reloc.d2d1.dll_Ordinal_8]
movdqu xmmword [rbp - 0x80], xmm1
movabs rax, 0x6c61636974726576
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 0
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
movzx r12d, byte [rax + 0x28]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov r8d, 0xf
lea rdx, str.durability_left
lea rcx, [rsp + 0x70]
call fcn.18005a6f0
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
movzx eax, byte [rax + 0x28]
mov byte [rsp + 0x60], al
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e380c
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
movss xmm6, dword [r13 + 0x18c]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov r8d, 7
lea rdx, str.uiscale
lea rcx, [rsp + 0x70]
call fcn.18005a6f0
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
movss xmm2, dword [rax + 0x28]
movaps xmm0, xmm6
unpcklps xmm0, xmm6
movq rdx, xmm0
lea rcx, [rbp - 0x30]
call fcn.18015cde0
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e387c
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
test r12b, r12b
je 0x1800e3889
movss xmm9, dword [rbp - 0x2c]
jmp 0x1800e388f
movss xmm9, dword [rbp - 0x30]
xorps xmm8, xmm8
xorps xmm11, xmm11
xorps xmm10, xmm10
lea rdi, [r13 + 0x168]
mov ebx, 4
mov qword [rbp - 0x30], rbx
movss xmm12, dword [0x1801f575c]
movss xmm7, dword [0x1801f56e0]
movss xmm13, dword [0x1801f5800]
test r12b, r12b
je 0x1800e38d1
addss xmm10, xmm9
jmp 0x1800e38d6
addss xmm11, xmm9
call fcn.18014f3f0
mov edx, esi
mov rcx, rax
call fcn.18014b7b0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800e3cc9
cmp qword [rcx], 0
je 0x1800e3cc9
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xor eax, eax
mov qword [rbp - 0x40], rax
mov r8d, 0xf
mov qword [rbp - 0x38], r8
mov byte [rbp - 0x50], al
cmp dword [rdi], eax
je 0x1800e3ca5
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x58], r8
mov rax, qword [str.percent]
mov dword [rbp - 0x70], eax
movzx eax, word [0x1801ef53c]
mov word [rbp - 0x6c], ax
movzx eax, byte [0x1801ef53e]
mov byte [rbp - 0x6a], al
mov byte [rbp - 0x69], 0
lea rdx, [rbp - 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
movzx ebx, byte [rax + 0x28]
lea rcx, [rbp - 0x70]
call fcn.18005a950
test bl, bl
je 0x1800e3a0d
movd xmm0, dword [rdi - 4]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [rdi]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
cvttss2si edx, xmm0
lea rcx, [rbp + 0xc0]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ee7e0]
mov rcx, rax
call fcn.18005a230
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts r15d, 7
mov r8, qword [rbp - 0x38]
cmp r8, 0xf
jbe 0x1800e39ec
mov rdx, qword [rbp - 0x50]
lea rcx, [rbp - 0x50]
call fcn.18005a910
movups xmmword [rbp - 0x50], xmm6
movups xmmword [rbp - 0x40], xmm7
lea rcx, [rbp + 0xc0]
call fcn.18005a950
movss xmm7, dword [0x1801f56e0]
jmp 0x1800e3ae7
mov edx, dword [rdi]
lea rcx, [rbp + 0xa0]
call fcn.18005a400
mov rbx, rax
mov edx, dword [rdi - 4]
lea rcx, [rbp + 0xe0]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ef7a8]
mov rcx, rax
call fcn.18005a230
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x50], xmm1
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts r15d, 8
mov r9, rbx
lea r8, [rbp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.180091910
bts r15d, 9
mov r8, qword [rbp - 0x38]
cmp r8, 0xf
jbe 0x1800e3a96
mov rdx, qword [rbp - 0x50]
lea rcx, [rbp - 0x50]
call fcn.18005a910
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rbp]
movups xmmword [rbp - 0x40], xmm1
mov qword [rbp], 0
mov qword [rbp + 8], 0xf
mov byte [rbp - 0x10], 0
lea rcx, [rbp - 0x10]
call fcn.18005a950
nop
lea rcx, [rbp + 0x40]
call fcn.18005a950
nop
lea rcx, [rbp + 0xe0]
call fcn.18005a950
nop
lea rcx, [rbp + 0xa0]
call fcn.18005a950
lea r9, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova r9, qword [rbp - 0x50]
add r9, qword [rbp - 0x40]
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova rdx, qword [rbp - 0x50]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xor ecx, ecx
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rcx
cmp rdx, r9
jne 0x1800e3b32
mov qword [rbp - 0x80], rcx
mov eax, 7
mov qword [rbp - 0x78], rax
mov word [rsp + 0x70], cx
jmp 0x1800e3b43
sub r9, rdx
lea rcx, [rsp + 0x70]
call fcn.180129fb0
mov rax, qword [rbp - 0x78]
lea rbx, [rsp + 0x70]
cmp rax, 7
cmova rbx, qword [rsp + 0x70]
movdqa xmm6, xmm14
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], 5
mov qword [rbp - 0x58], 0xf
mov eax, dword [str.color]
mov dword [rbp - 0x70], eax
movzx eax, byte [0x1801dc9c0]
mov byte [rbp - 0x6c], al
mov byte [rbp - 0x6b], 0
lea rdx, [rbp - 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
cmp byte [rax + 0x28], 0
je 0x1800e3bc5
movd xmm0, dword [rdi - 4]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [rdi]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
comiss xmm7, xmm0
jb 0x1800e3bc1
movdqa xmm6, xmm15
jmp 0x1800e3bc5
movups xmm6, xmmword [rbp + 0x10]
test r12b, r12b
je 0x1800e3bd5
cmp dword [rdi], 0
je 0x1800e3bd5
movaps xmm3, xmm9
jmp 0x1800e3bd9
movaps xmm3, xmm8
cmp byte [rsp + 0x60], 0
je 0x1800e3be5
mulss xmm3, xmm13
test r12b, r12b
jne 0x1800e3bf5
cmp dword [rdi], 0
je 0x1800e3bf5
movaps xmm1, xmm9
jmp 0x1800e3bf9
movaps xmm1, xmm8
movdqa xmmword [rbp - 0x10], xmm6
movss xmm4, dword [rsp + 0x64]
movaps xmm0, xmm4
mulss xmm0, dword [0x1801f56b0]
movaps xmm2, xmm10
addss xmm2, dword [r13 + 0x14c]
addss xmm2, xmm1
addss xmm2, dword [r13 + 0x188]
movaps xmm1, xmm11
addss xmm1, dword [r13 + 0x148]
addss xmm1, xmm3
addss xmm1, dword [r13 + 0x184]
mov byte [rsp + 0x50], 1
lea rax, [rbp - 0x10]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 0x190
movss dword [rsp + 0x38], xmm4
xor eax, eax
mov dword [rsp + 0x30], eax
movss xmm3, dword [rsp + 0x6c]
movss dword [rsp + 0x28], xmm3
movss dword [rsp + 0x20], xmm0
mov r9, rbx
lea rcx, [rbp + 0xa0]
call fcn.180087830
lea rcx, [rbp + 0xa0]
call fcn.18005a950
nop
lea rcx, [rsp + 0x70]
call fcn.1800599b0
mov r8, qword [rbp - 0x38]
mov rbx, qword [rbp - 0x30]
cmp r8, 0xf
jbe 0x1800e3cb8
mov rdx, qword [rbp - 0x50]
lea rcx, [rbp - 0x50]
call fcn.18005a910
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], al
inc esi
add rdi, 8
sub rbx, 1
mov qword [rbp - 0x30], rbx
jne 0x1800e38c5
call fcn.18014f3f0
mov rcx, rax
call fcn.1800b0e00
mov rcx, rax
call fcn.1800af300
mov rbx, rax
call fcn.18014f3f0
mov rcx, rax
call fcn.1800b0e00
mov rcx, rax
call fcn.1800af280
mov edx, eax
mov rcx, rbx
call fcn.18014f320
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800e416f
cmp qword [rcx], 0
je 0x1800e416f
call fcn.18014f3f0
mov rcx, rax
call fcn.1800b0e00
mov rcx, rax
call fcn.1800af300
mov rbx, rax
call fcn.18014f3f0
mov rcx, rax
call fcn.1800b0e00
mov rcx, rax
call fcn.1800af280
mov edx, eax
mov rcx, rbx
call fcn.18014f320
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movdqa xmm1, xmmword [0x1801f5890]
movdqu xmmword [rbp + 0x30], xmm1
mov byte [rbp + 0x20], 0
mov ebx, dword [r13 + 0x158]
test ebx, ebx
je 0x1800e3f3e
movdqa xmm0, xmmword [0x1801f5870]
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], 0xf
mov rax, qword [str.percent]
mov dword [rsp + 0x70], eax
movzx eax, word [0x1801ef53c]
mov word [rsp + 0x74], ax
movzx eax, byte [0x1801ef53e]
mov byte [rsp + 0x76], al
mov byte [rsp + 0x77], 0
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
cmp byte [rax + 0x28], 0
je 0x1800e3e84
movd xmm0, dword [r13 + 0x154]
cvtdq2ps xmm0, xmm0
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
cvttss2si edx, xmm0
lea rcx, [rbp + 0x100]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ee7e0]
mov rcx, rax
call fcn.18005a230
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x80], xmm1
xor edi, edi
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
bts r15d, 0xa
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x20]
call fcn.1800447c0
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e3e73
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
nop
lea rcx, [rbp + 0x100]
call fcn.18005a950
jmp 0x1800e3f69
mov edx, ebx
lea rcx, [rbp + 0x60]
call fcn.18005a400
mov rbx, rax
mov edx, dword [r13 + 0x154]
lea rcx, [rbp + 0x120]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ef7a8]
mov rcx, rax
call fcn.18005a230
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x80], xmm1
xor edi, edi
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
or r15d, 0x20
mov r9, rbx
lea r8, [rsp + 0x70]
lea rcx, [rbp + 0x40]
call fcn.180091910
or r15d, 0x40
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x20]
call fcn.1800447c0
lea rcx, [rbp + 0x40]
call fcn.18005a950
nop
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e3f26
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
nop
lea rcx, [rbp + 0x120]
call fcn.18005a950
nop
lea rcx, [rbp + 0x60]
call fcn.18005a950
jmp 0x1800e3f69
mov rcx, rax
call fcn.1800af200
movzx edx, al
lea rcx, [rbp + 0x60]
call fcn.18005a400
mov rdx, rax
lea rcx, [rbp + 0x20]
call fcn.1800447c0
lea rcx, [rbp + 0x60]
call fcn.18005a950
xor edi, edi
lea r9, [rbp + 0x20]
cmp qword [rbp + 0x38], 0xf
cmova r9, qword [rbp + 0x20]
add r9, qword [rbp + 0x30]
lea rdx, [rbp + 0x20]
cmp qword [rbp + 0x38], 0xf
cmova rdx, qword [rbp + 0x20]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
cmp rdx, r9
jne 0x1800e3fb2
movdqa xmm0, xmmword [0x1801f5870]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], di
jmp 0x1800e3fc0
sub r9, rdx
lea rcx, [rsp + 0x70]
call fcn.180129fb0
nop
lea rbx, [rsp + 0x70]
cmp qword [rbp - 0x78], 7
cmova rbx, qword [rsp + 0x70]
movdqa xmm6, xmm14
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movdqa xmm1, xmmword [0x1801f58e0]
movdqu xmmword [rbp - 0x60], xmm1
mov eax, dword [str.color]
mov dword [rbp - 0x70], eax
movzx eax, byte [0x1801dc9c0]
mov byte [rbp - 0x6c], al
mov byte [rbp - 0x6b], 0
or r15d, 8
lea rdx, [rbp - 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
cmp byte [rax + 0x28], 0
je 0x1800e4025
cmp dword [r13 + 0x158], 0
je 0x1800e4025
mov al, 1
jmp 0x1800e4027
xor al, al
test r15b, 8
je 0x1800e4031
and r15d, 0xfffffff7
test al, al
je 0x1800e406b
movd xmm0, dword [r13 + 0x154]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [r13 + 0x158]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
comiss xmm7, xmm0
jb 0x1800e4067
movdqa xmm6, xmm15
jmp 0x1800e406b
movups xmm6, xmmword [rbp + 0x10]
test r12b, r12b
je 0x1800e4085
addss xmm10, xmm9
cmp dword [r13 + 0x158], 0
je 0x1800e408a
movaps xmm3, xmm9
jmp 0x1800e408e
addss xmm11, xmm9
movaps xmm3, xmm8
movzx esi, byte [rsp + 0x60]
test sil, sil
je 0x1800e409d
mulss xmm3, xmm13
test r12b, r12b
jne 0x1800e40b2
cmp dword [r13 + 0x158], 0
je 0x1800e40b2
movaps xmm1, xmm9
jmp 0x1800e40b6
movaps xmm1, xmm8
movdqa xmmword [rbp - 0x10], xmm6
movss xmm6, dword [rsp + 0x64]
movaps xmm0, xmm6
mulss xmm0, dword [0x1801f56b0]
movss xmm2, dword [r13 + 0x188]
addss xmm2, dword [r13 + 0x14c]
addss xmm2, xmm10
addss xmm2, xmm1
movss xmm1, dword [r13 + 0x184]
addss xmm1, dword [r13 + 0x148]
addss xmm1, xmm11
addss xmm1, xmm3
mov byte [rsp + 0x50], 1
lea rax, [rbp - 0x10]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 0x190
movss dword [rsp + 0x38], xmm6
mov dword [rsp + 0x30], edi
movss xmm3, dword [rsp + 0x6c]
movss dword [rsp + 0x28], xmm3
movss dword [rsp + 0x20], xmm0
mov r9, rbx
lea rcx, [rbp + 0x60]
call fcn.180087830
lea rcx, [rbp + 0x60]
call fcn.18005a950
nop
mov r8, qword [rbp - 0x78]
cmp r8, 7
jbe 0x1800e4164
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.180059960
nop
lea rcx, [rbp + 0x20]
call fcn.18005a950
jmp 0x1800e417c
xor edi, edi
movzx esi, byte [rsp + 0x60]
movss xmm6, dword [rsp + 0x64]
cmp byte [rsp + 0x68], 0
je 0x1800e459f
call fcn.18014f3f0
mov rcx, rax
call fcn.18014c1b0
test rax, rax
je 0x1800e459f
call fcn.18014f3f0
mov rcx, rax
call fcn.18014c1b0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800e459f
cmp qword [rcx], 0
je 0x1800e459f
call fcn.18014f3f0
mov rcx, rax
call fcn.18014c1b0
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movdqa xmm1, xmmword [0x1801f5890]
movdqu xmmword [rbp - 0x60], xmm1
mov byte [rbp - 0x70], 0
cmp dword [r13 + 0x160], 0
je 0x1800e4396
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov r8d, 7
lea rdx, str.percent
lea rcx, [rsp + 0x70]
call fcn.18005a6f0
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
movzx ebx, byte [rax + 0x28]
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e4243
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
test bl, bl
je 0x1800e42ef
movd xmm0, dword [r13 + 0x15c]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [r13 + 0x160]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
cvttss2si edx, xmm0
lea rcx, [rbp + 0x140]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ee7e0]
mov rcx, rax
call fcn.18005a230
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x80], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts r15d, 0xb
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x70]
call fcn.1800447c0
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e42e3
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
nop
lea rcx, [rbp + 0x140]
jmp 0x1800e43c0
mov edx, dword [r13 + 0x160]
lea rcx, [rbp + 0x80]
call fcn.18005a400
mov rbx, rax
mov edx, dword [r13 + 0x15c]
lea rcx, [rbp + 0x180]
call fcn.18005a400
nop
mov r8d, 1
lea rdx, [0x1801ef7a8]
mov rcx, rax
call fcn.18005a230
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x50], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts r15d, 0xc
mov r8, rbx
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x160]
call fcn.180091b10
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800447c0
lea rcx, [rbp + 0x160]
call fcn.18005a950
nop
lea rcx, [rbp + 0x40]
call fcn.18005a950
nop
lea rcx, [rbp + 0x180]
call fcn.18005a950
nop
jmp 0x1800e43b9
mov rcx, rax
call fcn.1800af200
movzx edx, al
lea rcx, [rbp + 0x80]
call fcn.18005a400
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800447c0
lea rcx, [rbp + 0x80]
call fcn.18005a950
lea r8, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova r8, qword [rbp - 0x70]
add r8, qword [rbp - 0x60]
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rdx, qword [rbp - 0x70]
lea rcx, [rbp - 0x30]
call fcn.1801202b0
nop
lea rdi, [rbp - 0x30]
cmp qword [rbp - 0x18], 7
cmova rdi, qword [rbp - 0x30]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov r8d, 5
lea rdx, str.color
lea rcx, [rsp + 0x70]
call fcn.18005a6f0
or r15d, 0x10
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x70]
call fcn.180047110
cmp byte [rax + 0x28], 0
je 0x1800e444a
cmp dword [r13 + 0x160], 0
je 0x1800e444a
mov bl, 1
jmp 0x1800e444c
xor bl, bl
test r15b, 0x10
je 0x1800e446b
mov r8, qword [rbp - 0x78]
cmp r8, 0xf
jbe 0x1800e446b
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.18005a910
test bl, bl
je 0x1800e44a6
movd xmm0, dword [r13 + 0x15c]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [r13 + 0x160]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mulss xmm0, xmm12
call fcn.1801a2b58
comiss xmm7, xmm0
jb 0x1800e44a1
movdqa xmm14, xmm15
jmp 0x1800e44a6
movups xmm14, xmmword [rbp + 0x10]
test r12b, r12b
je 0x1800e44c0
addss xmm10, xmm9
cmp dword [r13 + 0x160], 0
je 0x1800e44c5
movaps xmm3, xmm9
jmp 0x1800e44c9
addss xmm11, xmm9
movaps xmm3, xmm8
test sil, sil
je 0x1800e44d3
mulss xmm3, xmm13
test r12b, r12b
jne 0x1800e44e6
cmp dword [r13 + 0x160], 0
je 0x1800e44e6
movaps xmm8, xmm9
movdqa xmmword [rbp - 0x10], xmm14
movaps xmm0, xmm6
mulss xmm0, dword [0x1801f56b0]
movss xmm2, dword [r13 + 0x188]
addss xmm2, dword [r13 + 0x14c]
addss xmm2, xmm10
addss xmm2, xmm8
movss xmm1, dword [r13 + 0x184]
addss xmm1, dword [r13 + 0x148]
addss xmm1, xmm11
addss xmm1, xmm3
mov byte [rsp + 0x50], 1
lea rax, [rbp - 0x10]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 0x190
movss dword [rsp + 0x38], xmm6
xor eax, eax
mov dword [rsp + 0x30], eax
movss xmm3, dword [rsp + 0x6c]
movss dword [rsp + 0x28], xmm3
movss dword [rsp + 0x20], xmm0
mov r9, rdi
lea rcx, [rbp + 0x80]
call fcn.180087830
lea rcx, [rbp + 0x80]
call fcn.18005a950
nop
lea rcx, [rbp - 0x30]
call fcn.1800599b0
nop
mov r8, qword [rbp - 0x58]
cmp r8, 0xf
jbe 0x1800e459f
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp - 0x70]
call fcn.18005a910
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.18016e810
lea r11, [rsp + 0x350]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret