Function at 0x18004b590
Capabilities:
Create thread
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x90
cmp edx, 1
jne 0x18004b841
call fcn.18002f810
movups xmm0, xmmword [str.pXJMTRHXS___7i]
xor r8d, r8d
cmp dword [0x1800adb58], 2
movups xmm1, xmmword [0x180054710]
mov eax, dword [0x180054740]
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x60], eax
movups xmm0, xmmword [str.__g]
movups xmmword [rsp + 0x30], xmm1
movups xmm1, xmmword [0x180054730]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
jl 0x18004b72e
movdqa xmm5, xmmword [0x18004e8e0]
lea rcx, [rsp + 0x20]
movdqa xmm4, xmmword [0x18004e960]
movaps xmmword [rsp + 0x80], xmm6
movdqa xmm6, xmmword [str.7777]
movaps xmmword [rsp + 0x70], xmm7
movdqa xmm7, xmmword [0x180054940]
nop dword [rax]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshuflw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
xorps xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshuflw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
xorps xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x20
jl 0x18004b630
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
cmp r8d, 0x22
jge 0x18004b774
movsxd rax, r8d
lea r9, [rsp + 0x20]
lea r9, [r9 + rax*2]
nop word [rax + rax]
mov eax, 0x94f2095
lea r9, [r9 + 2]
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x37
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x36
xor word [r9 - 2], ax
cmp r8d, 0x22
jl 0x18004b740
mov rax, qword gs:[0x60]
test rax, rax
je 0x18004b85b
mov r11, qword [rax + 0x18]
add r11, 0x20
mov r10, qword [r11]
cmp r10, r11
je 0x18004b85b
movzx ebx, word [rsp + 0x20]
nop
mov r8, qword [r10 + 0x50]
test r8, r8
je 0x18004b84f
xor ecx, ecx
mov rax, r8
cmp word [r8], cx
je 0x18004b7cc
nop dword [rax + rax]
inc ecx
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x18004b7c0
xor edx, edx
lea rax, [rsp + 0x20]
test bx, bx
je 0x18004b7ec
nop dword [rax + rax]
inc edx
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x18004b7e0
cmp ecx, edx
jne 0x18004b84f
xor eax, eax
movsxd r9, ecx
test ecx, ecx
je 0x18004b81f
nop dword [rax]
movzx edx, word [rsp + rax*2 + 0x20]
movzx ecx, word [r8 + rax*2]
or dx, 0x20
or cx, 0x20
cmp cx, dx
jne 0x18004b84f
inc rax
cmp rax, r9
jb 0x18004b800
mov rax, qword [r10 + 0x20]
mov qword [0x1800ae1c0], rax
test rax, rax
je 0x18004b866
xor r8d, r8d
lea rcx, [0x1800411f0]
xor edx, edx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthread]
mov eax, 1
add rsp, 0x90
pop rbx
ret
mov r10, qword [r10]
cmp r10, r11
jne 0x18004b7a0
mov qword [0x1800ae1c0], 0
xor eax, eax
add rsp, 0x90
pop rbx
ret