Function at 0x180018c90
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3b8]
sub rsp, 0x480
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x18005a080]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov r13, r8
mov qword [rbp - 0x70], r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x50], rcx
xor r14d, r14d
mov dword [rsp + 0x40], r14d
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
mov r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp byte [rdx + r8], r14b
jne 0x180018d36
lea rcx, [rbp - 0x50]
call fcn.180004930
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x60]
call fcn.1800405d0
mov rcx, rdi
call fcn.180016540
mov r12d, 1
mov dword [rsp + 0x40], r12d
movsxd rcx, dword [0x18005fb10]
lea eax, [rcx - 1]
movsxd rdx, eax
cmp rdx, rcx
jae 0x180018d8b
imul rdx, rdx, 0xd8
add rdx, qword [0x18005fb08]
jmp 0x180018d90
mov rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.180016930
nop
cmp dword [0x18005fb10], 1
jne 0x180018e65
movss xmm0, dword [rbp + 0x5c]
addss xmm0, dword [0x18005fc1c]
movss xmm2, dword [rbp + 0x9c]
addss xmm2, xmm0
movss xmm1, dword [rbp + 0x58]
addss xmm1, dword [0x18005fc18]
addss xmm1, dword [rbp + 0x98]
xorps xmm7, xmm7
movss xmm3, dword [rbp + 0x90]
ucomiss xmm3, xmm7
jp 0x180018de7
je 0x180018dfc
movss xmm0, dword [rbp + 0x94]
ucomiss xmm0, xmm7
jp 0x180018df6
je 0x180018dfc
movaps xmm1, xmm3
movaps xmm2, xmm0
movss dword [rdi + 0x28], xmm1
movss dword [rdi + 0x2c], xmm2
movss xmm9, dword [rsp + 0x64]
movaps xmm1, xmm9
addss xmm1, dword [0x18005a324]
movss xmm10, dword [rsp + 0x60]
movaps xmm0, xmm10
addss xmm0, dword [0x18005a320]
movss dword [rdi + 0x30], xmm0
movss dword [rdi + 0x34], xmm1
movss xmm0, dword [0x18005a320]
movss dword [rdi + 0x38], xmm0
movss xmm1, dword [0x18005a324]
movss dword [rdi + 0x3c], xmm1
lea rcx, [rdi + 8]
mov rbx, r15
inc rbx
cmp byte [rsi + rbx], 0
jne 0x180018e57
jmp 0x1800191d9
movss xmm9, dword [rsp + 0x64]
movaps xmm1, xmm9
addss xmm1, dword [0x18005a324]
movss xmm10, dword [rsp + 0x60]
movaps xmm0, xmm10
addss xmm0, dword [0x18005a320]
movss dword [rdi + 0x30], xmm0
movss dword [rdi + 0x34], xmm1
movss xmm0, dword [0x18005a320]
movss dword [rdi + 0x38], xmm0
movss xmm1, dword [0x18005a324]
movss dword [rdi + 0x3c], xmm1
cmp dword [rbp + 0x78], 0
je 0x18001915f
movsxd rax, dword [rbp + 0x8c]
movsxd rcx, dword [0x18005fb10]
cmp eax, ecx
jg 0x180018f06
test eax, eax
jle 0x180018f06
mov rdx, rax
cmp rax, rcx
jae 0x180018ef3
imul rdx, rdx, 0xd8
add rdx, qword [0x18005fb08]
lea rcx, [rbp + 0x1f0]
call fcn.180016930
jmp 0x180018f12
mov rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x1f0]
call fcn.180016930
jmp 0x180018f12
lea rcx, [rbp + 0x1f0]
call fcn.180016540
mov dword [rsp + 0x40], 3
movsxd rax, dword [rbp + 0x88]
movsxd rcx, dword [0x18005fb10]
cmp eax, ecx
jg 0x180018f67
test eax, eax
jle 0x180018f67
mov rdx, rax
cmp rax, rcx
jae 0x180018f54
imul rdx, rdx, 0xd8
add rdx, qword [0x18005fb08]
lea rcx, [rbp + 0x110]
call fcn.180016930
jmp 0x180018f73
mov rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x110]
call fcn.180016930
jmp 0x180018f73
lea rcx, [rbp + 0x110]
call fcn.180016540
mov r12d, 7
mov dword [rsp + 0x40], r12d
mov r8, qword [0x18005fb08]
mov edx, dword [0x18005fb10]
test edx, edx
je 0x180018faa
mov rcx, qword [rsp + 0x50]
cmovne rcx, r8
movsd xmm0, qword [rcx + 0x28]
movsd qword [rsp + 0x60], xmm0
lea rax, [rsp + 0x60]
jmp 0x180018faf
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rbp + 0x5c]
subss xmm1, dword [rax + 4]
subss xmm1, dword [0x18005f78c]
addss xmm1, dword [rbp + 0x22c]
test edx, edx
je 0x180018fe8
mov rcx, qword [rsp + 0x50]
cmovne rcx, r8
movsd xmm0, qword [rcx + 0x28]
movsd qword [rsp + 0x60], xmm0
lea rax, [rsp + 0x60]
jmp 0x180018fed
mov rax, qword [rsp + 0x50]
movss xmm8, dword [0x18005fc1c]
addss xmm8, dword [rax + 4]
addss xmm8, xmm1
movss xmm6, dword [0x18005fc18]
addss xmm6, dword [rax]
xorps xmm7, xmm7
addss xmm6, xmm7
mov rdx, qword [rbp + 0x198]
cmp rdx, 0xf
jbe 0x180019051
inc rdx
mov rcx, qword [rbp + 0x180]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001904c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800190a0
call fcn.18004c45c
movdqa xmm0, xmmword [0x180051830]
movdqu xmmword [rbp + 0x190], xmm0
mov byte [rbp + 0x180], 0
mov rdx, qword [rbp + 0x130]
cmp rdx, 0xf
jbe 0x1800190ac
inc rdx
mov rcx, qword [rbp + 0x118]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800190a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800190a7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
mov qword [rbp + 0x128], r14
mov qword [rbp + 0x130], socket
mov byte [rbp + 0x118], 0
mov rdx, qword [rbp + 0x278]
cmp rdx, 0xf
jbe 0x180019102
inc rdx
mov rcx, qword [rbp + 0x260]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800190fd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180019151
call fcn.18004c45c
movdqa xmm0, xmmword [0x180051830]
movdqu xmmword [rbp + 0x270], xmm0
mov byte [rbp + 0x260], 0
mov rdx, qword [rbp + 0x210]
cmp rdx, 0xf
jbe 0x18001917f
inc rdx
mov rcx, qword [rbp + 0x1f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019158
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180019158
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
jmp 0x18001917f
movss xmm8, dword [rbp + 0x5c]
xorps xmm7, xmm7
addss xmm8, xmm7
movss xmm6, dword [rbp + 0x58]
addss xmm6, dword [0x180050748]
addss xmm6, dword [rbp + 0x60]
movss xmm1, dword [rbp + 0x90]
ucomiss xmm1, xmm7
jp 0x18001918e
je 0x1800191a4
movss xmm0, dword [rbp + 0x94]
ucomiss xmm0, xmm7
jp 0x18001919d
je 0x1800191a4
movaps xmm6, xmm1
movaps xmm8, xmm0
movss xmm1, dword [rbp + 0x9c]
addss xmm1, xmm8
movss xmm0, dword [rbp + 0x98]
addss xmm0, xmm6
movss dword [rdi + 0x28], xmm0
movss dword [rdi + 0x2c], xmm1
lea rcx, [rdi + 8]
mov rbx, r15
nop
inc rbx
cmp byte [rsi + rbx], 0
jne 0x1800191d0
mov rax, qword [rcx + 0x18]
cmp rbx, rax
ja 0x18001920a
cmp rax, 0xf
mov r14, rcx
jbe 0x1800191ee
mov r14, qword [rcx]
mov qword [rcx + 0x10], rbx
mov r8, rbx
mov rdx, rsi
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
mov byte [r14 + rbx], 0
xor r14d, r14d
jmp 0x180019215
mov r9, rsi
mov rdx, rbx
call fcn.180004d20
mov eax, dword [0x18005fb10]
mov dword [rdi], eax
mov dword [rdi + 4], 1
mov qword [rdi + 0x90], r13
mov rdx, rdi
lea rcx, [0x18005fb08]
call fcn.18001fdc0
movzx ecx, byte [rdi]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rdi + 1]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rdi + 2]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rdi + 3]
xor rcx, rax
imul rcx, rdx
mov rdx, qword [0x18005ff50]
and rdx, rcx
add rdx, rdx
mov r8, qword [0x18005ff38]
mov rax, qword [r8 + rdx*8 + 8]
mov r9, qword [0x18005ff28]
cmp rax, r9
je 0x1800192c0
mov r8, qword [r8 + rdx*8]
mov ecx, dword [rdi]
cmp ecx, dword [rax + 0x10]
je 0x1800192c3
nop dword [rax]
cmp rax, r8
je 0x1800192c0
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x1800192b0
jmp 0x1800192c3
mov rax, r14
test rax, rax
je 0x1800192d1
cmp rax, r9
jne 0x18001940a
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], recv
mov byte [rbp - 8], al
mov qword [rbp + 0x18], rax
mov eax, dword [rdi]
mov dword [rbp - 0x10], eax
mov rbx, r15
inc rbx
cmp byte [rsi + rbx], 0
jne 0x180019305
lea rcx, [rbp - 8]
cmp rbx, 0xf
ja 0x18001932e
mov qword [rbp + 8], rbx
mov r8, rbx
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rbx - 8], 0
jmp 0x180019339
mov r9, rsi
mov rdx, rbx
call fcn.180004d20
mov qword [rbp + 0x20], r13
movaps xmm0, xmm10
unpcklps xmm0, xmm9
movsd qword [rbp + 0x18], xmm0
mov eax, dword [rdi]
mov dword [rbp - 0x50], eax
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0x48], eax
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x40]
call fcn.18000e820
movss xmm0, dword [rbp + 0x18]
movss dword [rbp - 0x20], xmm0
movss xmm1, dword [rbp + 0x1c]
movss dword [rbp - 0x1c], xmm1
mov rax, qword [rbp + 0x20]
mov qword [rbp - 0x18], rax
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x60]
call fcn.180020c80
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x1800193cc
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800193c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800193c6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 0xf
jbe 0x18001940a
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019405
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180019405
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
movss xmm1, dword [0x18005a324]
movss xmm0, dword [rdi + 0x30]
unpcklps xmm0, xmm1
movq rdx, xmm0
mov rcx, qword [rdi + 0x28]
call fcn.180017000
movzx ebx, al
test al, al
je 0x18001945c
cmp dword [0x18005fa10], 0xffffffff
jne 0x180019447
mov rdx, rdi
lea rcx, [0x18005fd00]
call fcn.1800177b0
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001945c
mov r14b, 1
jmp 0x180019463
xor r14b, r14b
test bl, bl
je 0x180019477
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180019477
mov al, 1
jmp 0x180019479
xor al, al
movss xmm9, dword [0x180051768]
test r14b, r14b
je 0x1800197d8
test al, al
je 0x1800197d8
movsxd rcx, dword [rdi]
movsxd rbx, dword [0x18005fb00]
mov rdx, qword [0x18005faf8]
cmp rcx, rbx
jae 0x1800194b2
imul rax, rcx, 0x38
add rax, rdx
jmp 0x1800194b7
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0
je 0x1800197d8
cmp rcx, rbx
jae 0x1800194ce
imul rax, rcx, 0x38
add rax, rdx
jmp 0x1800194d3
mov rax, qword [rsp + 0x50]
cmp dword [rax + 4], 0
je 0x1800197d8
cmp rcx, rbx
jae 0x1800194eb
imul rax, rcx, 0x38
add rax, rdx
jmp 0x1800194f0
mov rax, qword [rsp + 0x50]
mov byte [rax], 0
movaps xmm8, xmmword [0x1800519d0]
movsd xmm0, qword [0x1800507d0]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [0x1800507d8]
mov dword [rsp + 0x68], eax
movzx eax, byte [0x1800507dc]
mov byte [rsp + 0x6c], al
xor r8d, r8d
cmp dword [0x18005a0d0], 2
jl 0x180019632
movdqa xmm4, xmmword [0x180051af0]
movdqa xmm2, xmmword [0x180051840]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800518b0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800518d0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1800518f0]
movd xmm0, dword [0x1800507d0]
xorps xmm2, xmm0
movd dword [rsp + 0x60], xmm2
movdqa xmm3, xmmword [0x180051850]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800518b0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800518d0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1800518f0]
movd xmm0, dword [rsp + 0x64]
xorps xmm2, xmm0
movd dword [rsp + 0x64], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
nop dword [rax]
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x180019640
lea rcx, [rdi + 8]
mov rdx, qword [rcx + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rdx
cmp rax, 1
jb 0x18001a068
cmp qword [rcx + 0x18], 0xf
jbe 0x18001969c
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 1
lea r9, [0x1800508e8]
lea rcx, [rbp - 0x50]
call fcn.1800209b0
or r12d, 0x10
mov dword [rsp + 0x40], r12d
lea rax, [rsp + 0x60]
mov r8, r15
inc r8
cmp byte [rax + r8], 0
jne 0x1800196d0
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x50]
call fcn.180004220
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp], xmm1
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], recv
mov byte [rax], 0
or r12d, 8
mov dword [rsp + 0x40], r12d
lea rdx, [rbp - 0x10]
movq rcx, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 0xf
cmova rdx, rcx
movdqa xmmword [rsp + 0x60], xmm8
lea r9, [rsp + 0x60]
movaps xmm2, xmm7
movaps xmm1, xmm9
mov rcx, rdx
call fcn.18001ce00
nop
mov rdx, qword [rbp + 8]
cmp rdx, 0xf
jbe 0x180019789
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019783
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180019783
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x1800197c7
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800197c2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800197c2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
movdqa xmm0, xmmword [0x180051830]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
xor ebx, ebx
movsxd rcx, dword [0x18005fb00]
test rcx, rcx
je 0x180019865
mov r13, qword [0x18005faf8]
mov r12, qword [rsp + 0x50]
mov rax, r13
cmp rbx, rcx
cmovae rax, qword [rsp + 0x60]
mov qword [rsp + 0x60], rax
lea rcx, [rax + 0x10]
mov rax, r15
nop word [rax + rax]
inc rax
cmp byte [rsi + rax], 0
jne 0x180019810
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0xf
jbe 0x180019827
mov rcx, qword [rcx]
cmp r8, rax
jne 0x180019838
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180019861
movsxd rax, dword [0x18005fb00]
mov rcx, rax
cmp rbx, rax
cmovb r12, r13
cmp dword [r12 + 0x30], 0xffffffff
je 0x180019902
inc rbx
add r13, 0x38
cmp rbx, rax
jb 0x1800197f2
mov r13, qword [rbp - 0x70]
movups xmm0, xmmword [0x18005f628]
movdqa xmmword [rbp - 0x70], xmm0
movss xmm1, dword [0x18005a324]
movss dword [rsp + 0x28], xmm1
movss xmm0, dword [0x18005a320]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rdi + 0x2c]
movss xmm2, dword [rdi + 0x28]
lea rdx, [rbp - 0x70]
mov rcx, qword [0x18005f558]
call fcn.180039c70
movups xmm0, xmmword [0x18005f5b8]
movdqa xmmword [rbp - 0x70], xmm0
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm9
mov r8, qword [0x18005a320]
mov rdx, qword [rdi + 0x28]
call fcn.18003bbb0
mov r15, qword [0x18005fbf8]
mov rax, qword [r15 + 8]
mov rbx, r15
cmp byte [rax + 0x19], 0
jne 0x1800199ea
mov ecx, dword [rdi]
nop word [rax + rax]
cmp dword [rax + 0x1c], ecx
jge 0x1800199da
mov rax, qword [rax + 0x10]
jmp 0x1800199e0
cmp rbx, rax
jae 0x180019914
imul rax, rbx, 0x38
add rax, qword [0x18005faf8]
jmp 0x180019919
mov rax, qword [rsp + 0x50]
mov byte [rax], 1
movsxd rax, dword [0x18005fb00]
cmp rbx, rax
jae 0x180019935
imul rcx, rbx, 0x38
add rcx, qword [0x18005faf8]
jmp 0x18001993a
mov rcx, qword [rsp + 0x50]
mov eax, dword [rdi]
mov dword [rcx + 0x30], eax
movsxd rax, dword [0x18005fb00]
cmp rbx, rax
jae 0x180019958
imul rcx, rbx, 0x38
add rcx, qword [0x18005faf8]
jmp 0x18001995d
mov rcx, qword [rsp + 0x50]
add rcx, 0x10
inc r15
cmp byte [rsi + r15], 0
jne 0x180019961
mov rax, qword [rcx + 0x18]
cmp r15, rax
ja 0x180019999
mov r12, rcx
cmp rax, 0xf
jbe 0x180019980
mov r12, qword [rcx]
mov qword [rcx + 0x10], r15
mov r8, r15
mov rdx, rsi
mov rcx, r12
call sub.VCRUNTIME140.dll_memmove
mov byte [r12 + r15], 0
jmp 0x1800199a4
mov r9, rsi
mov rdx, r15
call fcn.180004d20
movsxd rax, dword [0x18005fb00]
cmp rbx, rax
jae 0x1800199c8
imul rax, rbx, 0x38
add rax, qword [0x18005faf8]
mov r13, qword [rbp - 0x70]
mov qword [rax + 8], r13
jmp 0x180019865
mov rax, qword [rsp + 0x50]
mov r13, qword [rbp - 0x70]
mov qword [rax + 8], r13
jmp 0x180019865
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1800198f0
cmp byte [rbx + 0x19], 0
jne 0x1800199f7
mov eax, dword [rbx + 0x1c]
cmp dword [rdi], eax
jge 0x1800199fa
mov rbx, r15
cmp rbx, r15
jne 0x180019b27
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp - 0x60], rax
mov edx, dword [rdi]
mov dword [rbp - 0x50], edx
movups xmmword [rbp - 0x4c], xmm0
movsd xmm0, qword [rbp - 0x60]
movsd qword [rbp - 0x3c], xmm0
mov dword [rbp - 0x34], eax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], 0
mov rcx, r15
cmp byte [rax + 0x19], 0
jne 0x180019a6c
nop dword [rax]
mov qword [rsp + 0x60], rax
cmp dword [rax + 0x1c], edx
jge 0x180019a58
mov dword [rsp + 0x68], 0
mov rax, qword [rax + 0x10]
jmp 0x180019a66
mov dword [rsp + 0x68], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x180019a40
cmp byte [rcx + 0x19], 0
jne 0x180019a77
cmp edx, dword [rcx + 0x1c]
jge 0x180019aec
movabs rax, 0x3ffffffffffffff
cmp qword [0x18005fc00], rax
je 0x18001a062
lea rbx, [0x18005fbf8]
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], 0
mov ecx, 0x40
call fcn.18004c420
nop
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rax + 0x1c], xmm0
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [rax + 0x2c], xmm1
mov qword [rax], r15
mov qword [rax + 8], r15
mov qword [rax + 0x10], r15
mov word [rax + 0x18], 0
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rbp - 0x70], xmm0
mov r8, rax
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.180021070
mov r15, qword [0x18005fbf8]
mov rax, qword [r15 + 8]
mov rbx, r15
cmp byte [rax + 0x19], 0
jne 0x180019b17
mov ecx, dword [rdi]
nop dword [rax + rax]
cmp dword [rax + 0x1c], ecx
jge 0x180019b0b
mov rax, qword [rax + 0x10]
jmp 0x180019b11
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x180019b00
cmp byte [rbx + 0x19], 0
jne 0x180019b24
mov eax, dword [rbx + 0x1c]
cmp dword [rdi], eax
jge 0x180019b27
mov rbx, r15
movss xmm3, dword [0x180051730]
cmp byte [r13], 0
je 0x180019d45
movss xmm0, dword [rbx + 0x30]
xorps xmm11, xmm11
ucomiss xmm0, xmm7
jp 0x180019b98
jne 0x180019b98
movsd xmm1, qword [0x18005f9a8]
ucomisd xmm1, xmm11
jp 0x180019b8a
jne 0x180019b8a
call fcn.1800402f0
mov rcx, rax
call fcn.18003d310
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
movsd xmm1, qword [0x18005f9a8]
movss xmm3, dword [0x180051730]
cvtpd2ps xmm0, xmm2
movss dword [rbx + 0x30], xmm0
jmp 0x180019ba0
movaps xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [rbx + 0x30], xmm0
jmp 0x180019ba0
movsd xmm1, qword [0x18005f9a8]
movss xmm8, dword [0x18005f6c4]
movaps xmm12, xmm8
subss xmm12, xmm3
movss xmm9, dword [0x18005f6c0]
movaps xmm13, xmm9
addss xmm13, xmm7
movss xmm10, dword [0x18005f6bc]
movaps xmm14, xmm10
addss xmm14, xmm7
movss xmm6, dword [0x18005f6b8]
movaps xmm15, xmm6
addss xmm15, xmm7
ucomisd xmm1, xmm11
jp 0x180019c16
jne 0x180019c16
call fcn.1800402f0
mov rcx, rax
call fcn.18003d310
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
movsd xmm1, qword [0x18005f9a8]
movss xmm3, dword [0x180051730]
jmp 0x180019c19
movaps xmm2, xmm1
movss xmm0, dword [rbx + 0x30]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movsd xmm0, qword [0x180051748]
comisd xmm0, xmm2
jbe 0x180019cde
movss xmm0, dword [rbx + 0x2c]
ucomiss xmm0, xmm3
jp 0x180019c47
je 0x180019cde
ucomisd xmm1, xmm11
jp 0x180019c64
jne 0x180019c64
call fcn.1800402f0
mov rcx, rax
call fcn.18003d310
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [rbx + 0x30]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
divsd xmm1, qword [0x180051748]
cvtpd2ps xmm0, xmm1
subss xmm8, xmm12
mulss xmm8, xmm0
addss xmm8, xmm12
subss xmm9, xmm13
mulss xmm9, xmm0
addss xmm9, xmm13
subss xmm10, xmm14
mulss xmm10, xmm0
addss xmm10, xmm14
subss xmm6, xmm15
mulss xmm6, xmm0
addss xmm6, xmm15
shufps xmm6, xmm6, 0xe1
movss xmm6, xmm10
shufps xmm6, xmm6, 0xc6
movss xmm6, xmm9
shufps xmm6, xmm6, 0x27
movss xmm6, xmm8
shufps xmm6, xmm6, 0x39
movups xmmword [rbp - 0x70], xmm6
movups xmmword [rbx + 0x20], xmm6
mov byte [rbx + 0x38], 1
movss xmm5, dword [0x18005a324]
subss xmm5, dword [0x18005179c]
movss xmm4, dword [0x18005a320]
subss xmm4, dword [0x18005179c]
movups xmm0, xmmword [rbx + 0x20]
movaps xmmword [rbp - 0x70], xmm0
movss xmm3, dword [rdi + 0x2c]
addss xmm3, dword [0x180051790]
movss xmm2, dword [rdi + 0x28]
addss xmm2, dword [0x180051790]
movss dword [rsp + 0x28], xmm5
movss dword [rsp + 0x20], xmm4
lea rdx, [rbp - 0x70]
mov rcx, qword [0x18005f558]
call fcn.180039c70
jmp 0x180019ea6
cmp byte [rbx + 0x38], 0
je 0x180019d84
mov byte [rbx + 0x38], 0
xorps xmm0, xmm0
movsd xmm1, qword [0x18005f9a8]
ucomisd xmm1, xmm0
jp 0x180019d76
jne 0x180019d76
call fcn.1800402f0
mov rcx, rax
call fcn.18003d310
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [rbx + 0x30], xmm0
jmp 0x180019ea6
movss xmm0, dword [rbx + 0x2c]
comiss xmm0, xmm7
jbe 0x180019e99
xorps xmm0, xmm0
movsd xmm1, qword [0x18005f9a8]
ucomisd xmm1, xmm0
jp 0x180019db9
jne 0x180019db9
call fcn.1800402f0
mov rcx, rax
call fcn.18003d310
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [rbx + 0x30]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
divsd xmm1, qword [0x180051748]
cvtpd2ps xmm3, xmm1
movss dword [rbx + 0x34], xmm3
movaps xmm6, xmm7
subss xmm6, dword [rbx + 0x2c]
mulss xmm6, xmm3
addss xmm6, dword [rbx + 0x2c]
movaps xmm4, xmm7
subss xmm4, dword [rbx + 0x28]
mulss xmm4, xmm3
addss xmm4, dword [rbx + 0x28]
movaps xmm2, xmm7
subss xmm2, dword [rbx + 0x24]
mulss xmm2, xmm3
addss xmm2, dword [rbx + 0x24]
movaps xmm5, xmm7
subss xmm5, dword [rbx + 0x20]
mulss xmm5, xmm3
addss xmm5, dword [rbx + 0x20]
shufps xmm5, xmm5, 0xe1
movss xmm5, xmm2
shufps xmm5, xmm5, 0xc6
movss xmm5, xmm4
shufps xmm5, xmm5, 0x27
movss xmm5, xmm6
shufps xmm5, xmm5, 0x39
movups xmmword [rbp - 0x70], xmm5
movups xmmword [rbx + 0x20], xmm5
movss xmm4, dword [0x18005a324]
subss xmm4, dword [0x18005179c]
movss xmm1, dword [0x18005a320]
subss xmm1, dword [0x18005179c]
movdqa xmmword [rbp - 0x70], xmm5
movss xmm3, dword [rdi + 0x2c]
addss xmm3, dword [0x180051790]
movss xmm2, dword [rdi + 0x28]
addss xmm2, dword [0x180051790]
movss dword [rsp + 0x28], xmm4
movss dword [rsp + 0x20], xmm1
lea rdx, [rbp - 0x70]
mov rcx, qword [0x18005f558]
call fcn.180039c70
comiss xmm7, dword [rbx + 0x2c]
jb 0x180019ea6
mov dword [rbx + 0x30], 0
mov eax, dword [rdi]
cmp dword [0x18005fd00], eax
jne 0x180019ee9
cmp dword [0x18005fa10], 0xffffffff
jne 0x180019ee9
cmp byte [0x18005f505], 0
je 0x180019ee9
mov edx, 1
call fcn.180016340
test al, al
je 0x180019ee9
cmp dword [0x18005fb20], 0xffffffff
jne 0x180019ee9
test r14b, r14b
jne 0x180019ee9
cmp byte [r13], r14b
sete al
mov byte [r13], al
movss xmm3, dword [0x18005f794]
divss xmm3, dword [0x1800517a8]
movss xmm2, dword [rdi + 0x3c]
addss xmm2, dword [rdi + 0x2c]
addss xmm2, dword [0x18005a13c]
addss xmm2, dword [0x180051730]
movss xmm1, dword [rdi + 0x38]
addss xmm1, dword [rdi + 0x28]
addss xmm1, dword [0x18005a138]
addss xmm1, xmm7
lea rcx, [0x18005f718]
lea rax, [0x18005f7a8]
test r14b, r14b
cmove rax, rcx
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x70], xmm0
movss dword [rsp + 0x20], xmm7
movaps xmm0, xmm3
unpcklps xmm0, xmm3
movq r9, xmm0
lea r8, [rbp - 0x70]
unpcklps xmm1, xmm2
movq rdx, xmm1
mov rcx, rsi
call fcn.180017ae0
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0xf
jbe 0x180019fa8
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019fa3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180019ff1
call fcn.18004c45c
movdqa xmm0, xmmword [0x180051830]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0x50]
cmp rdx, 0xf
jbe 0x180019ffd
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019ff8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180019ff8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004c45c
mov rax, rdi
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.18004c400
lea r11, [rsp + 0x480]
mov rbx, qword [r11 + 0x58]
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 rdi
pop rsi
pop rbp
ret
call fcn.1800161b0
int3
call fcn.1800015c0
int3