Function at 0x18001b620
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0xd8]
sub rsp, 0x1b0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x1801aeab8]
test rax, rax
je 0x18001b65b
inc dword [rax + 0x3bc]
mov ecx, 0x3e40
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
xor ebx, ebx
test rax, rax
je 0x18001b677
mov rcx, rax
call fcn.180024d90
jmp 0x18001b67a
mov rax, rbx
cmp qword [0x1801aeab8], rbx
jne 0x18001b68a
mov qword [0x1801aeab8], rax
mov rcx, rax
call fcn.18002aba0
xorps xmm0, xmm0
mov qword [rsp + 0x40], rbx
mov eax, 0xffff
mov dword [rsp + 0x48], ebx
mov word [rbp - 0x6c], ax
xor eax, eax
cmp byte [0x18008b24b], bl
mov qword [rbp - 0x4a], rax
mov rax, qword [0x1801aeab8]
movups xmmword [rbp - 0x6a], xmm0
mov byte [rsp + 0x4c], 1
movups xmmword [rbp - 0x5a], xmm0
mov r9, qword [rax + 0xa8]
movups xmm0, xmmword [0x18008b230]
mov eax, dword [0x18008b248]
mov dword [rbp - 0x18], eax
movups xmmword [rbp - 0x30], xmm0
mov qword [rsp + 0x50], rbx
movsd xmm0, qword [0x18008b240]
mov qword [rsp + 0x64], rbx
mov qword [rsp + 0x6c], rbx
mov qword [rsp + 0x78], rbx
mov dword [rbp - 0x80], ebx
mov dword [rbp - 0x7c], 0x7f7fffff
mov byte [rbp - 0x78], bl
mov dword [rbp - 0x74], ebx
mov dword [rbp - 0x70], 0x3f800000
mov qword [rbp - 0x40], rbx
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x5c], 1
mov byte [rsp + 0x60], 1
movsd qword [rbp - 0x20], xmm0
je 0x18001b8af
cmp dword [0x180095010], 2
jl 0x18001b86e
movdqa xmm0, xmmword [0x18008cba0]
lea rcx, [rbp - 0x2c]
movdqa xmm4, xmmword [0x18008cb20]
movdqa xmm3, xmmword [0x18008d270]
movdqa xmm5, xmmword [0x18008cb70]
movdqa xmm6, xmmword [0x18008cb80]
movdqa xmmword [rsp + 0x30], xmm0
mov edx, dword [rsp + 0x30]
nop dword [rax]
movd xmm2, ebx
lea eax, [rbx + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm4
add ebx, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movd dword [rcx - 0xc], xmm2
movd xmm2, eax
mov eax, ebx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm4
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp ebx, 0x18
jl 0x18001b780
cmp eax, 0x1c
jge 0x18001b8af
movsxd rax, ebx
lea r8, [rbp - 0x30]
add r8, rax
nop dword [rax + rax]
mov eax, 0x8fb823ef
lea r8, [r8 + 1]
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x39
movzx eax, bl
inc ebx
sub al, dl
add al, 0x37
xor byte [r8 - 1], al
cmp ebx, 0x1c
jl 0x18001b880
lea rdx, [rbp - 0x30]
mov rcx, r9
call fcn.1800424f0
mov rax, qword [0x1801aeab8]
mov r15, qword [rax + 0xa8]
test rax, rax
je 0x18001b8d4
inc dword [rax + 0x3bc]
mov ecx, 0x5320
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
lea rbx, [0x180060dc0]
lea rax, [0x180060db0]
mov qword [0x1801aeb80], rsi
mov qword [0x1801aeb70], rax
mov r9, rsi
mov qword [0x1801aeb88], rsi
lea rdi, [rsi + 0x5320]
mov qword [0x1801aeb78], rdi
nop word [rax + rax]
movzx r8d, byte [rbx]
mov r14, rbx
mov rax, rbx
cmp r8b, 0x20
jb 0x18001ba4e
cmp r8b, 0x80
jb 0x18001b9b2
movzx eax, byte [rbx + 1]
lea edx, [r8 - 0x7f]
mov rcx, r9
mov r8d, edx
sub rcx, rax
add r8, r9
dec rcx
cmp r8, rdi
jbe 0x18001b969
mov r9, r8
mov qword [0x1801aeb88], r8
lea rax, [rbx + 2]
jmp 0x18001bbbf
cmp rcx, rsi
jae 0x18001b982
lea r9, [rdi + 1]
mov qword [0x1801aeb88], r9
lea rax, [rbx + 2]
jmp 0x18001bbbf
test edx, edx
je 0x18001b9a9
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [r9], al
inc r9
add edx, 0xffffffff
jne 0x18001b990
mov qword [0x1801aeb88], r9
lea rax, [rbx + 2]
jmp 0x18001bbbf
cmp r8b, 0x40
jb 0x18001ba32
movzx edx, byte [rbx + 2]
mov rax, r8
shl rax, 8
inc edx
mov rcx, r9
mov r8d, edx
sub rcx, rax
add r8, r9
movzx eax, byte [rbx + 1]
sub rcx, rax
add rcx, 0x3fff
cmp r8, rdi
jbe 0x18001b9f7
mov r9, r8
mov qword [0x1801aeb88], r8
lea rax, [rbx + 3]
jmp 0x18001bbbf
cmp rcx, rsi
jae 0x18001ba10
lea r9, [rdi + 1]
mov qword [0x1801aeb88], r9
lea rax, [rbx + 3]
jmp 0x18001bbbf
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [r9], al
inc r9
add edx, 0xffffffff
jne 0x18001ba10
mov qword [0x1801aeb88], r9
lea rax, [rbx + 3]
jmp 0x18001bbbf
lea edx, [r8 - 0x1f]
lea rcx, [rbx + 1]
call fcn.180045cd0
movzx eax, byte [rbx]
add rax, 0xffffffffffffffe2
add rax, rbx
jmp 0x18001bbb8
cmp r8b, 0x18
jb 0x18001ba88
movzx eax, byte [rbx + 1]
movzx edx, byte [rbx + 3]
shl r8, 8
inc edx
add r8, rax
movzx eax, byte [rbx + 2]
shl r8, 8
sub r9, r8
sub r9, rax
lea rcx, [r9 + 0x17ffff]
call fcn.180045c70
lea rax, [rbx + 4]
jmp 0x18001bbb8
cmp r8b, 0x10
jb 0x18001bace
movzx ecx, byte [rbx + 3]
movzx eax, byte [rbx + 1]
movzx edx, byte [rbx + 4]
shl ecx, 8
inc ecx
add edx, ecx
mov rcx, r8
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 2]
shl rcx, 8
sub r9, rcx
sub r9, rax
lea rcx, [r9 + 0xfffff]
call fcn.180045c70
lea rax, [rbx + 5]
jmp 0x18001bbb8
cmp r8b, 8
jb 0x18001bb0b
movzx edx, byte [rbx + 1]
mov ecx, r8d
shl ecx, 8
add ecx, 0xfffff801
add edx, ecx
lea rcx, [rbx + 2]
call fcn.180045cd0
movzx eax, byte [rbx]
movzx ecx, byte [rbx + 1]
shl rax, 8
add rax, 0xfffffffffffff803
add rax, rbx
add rax, rcx
jmp 0x18001bbb8
cmp r8b, 7
jne 0x18001bb41
movzx ecx, byte [rbx + 1]
movzx edx, byte [rbx + 2]
shl ecx, 8
inc ecx
add edx, ecx
lea rcx, [rbx + 3]
call fcn.180045cd0
movzx eax, byte [rbx + 1]
movzx ecx, byte [rbx + 2]
shl rax, 8
add rax, 4
add rax, rbx
add rax, rcx
jmp 0x18001bbb8
cmp r8b, 6
jne 0x18001bb79
movzx eax, byte [rbx + 2]
movzx ecx, byte [rbx + 1]
movzx edx, byte [rbx + 4]
shl rcx, 8
inc edx
add rcx, rax
movzx eax, byte [rbx + 3]
shl rcx, 8
sub r9, rcx
sub r9, rax
lea rcx, [r9 - 1]
call fcn.180045c70
lea rax, [rbx + 5]
jmp 0x18001bbb8
cmp r8b, 4
jne 0x18001bbbf
movzx ecx, byte [rbx + 4]
movzx eax, byte [rbx + 2]
movzx edx, byte [rbx + 5]
shl ecx, 8
inc ecx
add edx, ecx
movzx ecx, byte [rbx + 1]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 3]
shl rcx, 8
sub r9, rcx
sub r9, rax
lea rcx, [r9 - 1]
call fcn.180045c70
lea rax, [rbx + 6]
mov r9, qword [0x1801aeb88]
mov rbx, rax
cmp rax, r14
je 0x18001bbd0
cmp r9, rdi
jbe 0x18001b920
movups xmm0, xmmword [rsp + 0x40]
lea rax, [0x18008b9a0]
movups xmm2, xmmword [rsp + 0x50]
lea rdx, [rsp + 0x40]
movups xmm4, xmmword [rsp + 0x70]
mov rcx, r15
movups xmm3, xmmword [rsp + 0x60]
movups xmm5, xmmword [rbp - 0x80]
movups xmm6, xmmword [rbp - 0x70]
movups xmm7, xmmword [rbp - 0x60]
movups xmm8, xmmword [rbp - 0x50]
movsd xmm1, qword [rbp - 0x40]
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x70], xmm4
mov byte [rbp - 4], 1
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x48], 0x5320
movups xmmword [rsp + 0x60], xmm3
movups xmmword [rbp - 0x80], xmm5
movups xmmword [rbp - 0x70], xmm6
movups xmmword [rbp - 0x60], xmm7
movups xmmword [rbp - 0x50], xmm8
movsd qword [rbp - 0x40], xmm1
mov dword [rsp + 0x54], 0x41600000
mov qword [rsp + 0x78], rax
call fcn.180042240
mov rbx, qword [0x1801aeab8]
lea rax, [rbp + 0xe0]
movss xmm8, dword [0x18008c8b4]
lea r9, [rbp + 0xf0]
movss xmm7, dword [0x18008c80c]
movaps xmm2, xmm8
movss xmm6, dword [0x18008c878]
movaps xmm1, xmm7
mov qword [rsp + 0x28], rax
movaps xmm0, xmm6
lea rax, [rbp + 0xe8]
mov dword [rbx + 0x1558], 0x3f333333
mov qword [rsp + 0x20], rax
mov dword [rbx + 0x155c], 0x41700000
mov dword [rbx + 0x1560], 0x41700000
mov dword [rbx + 0x1564], 0x40a00000
mov dword [rbx + 0x1590], 0x40a00000
mov dword [rbx + 0x1594], 0x40a00000
mov dword [rbx + 0x1598], 0x40800000
mov dword [rbx + 0x15a0], 0x41400000
mov dword [rbx + 0x15a4], 0x41000000
mov dword [rbx + 0x15a8], 0x41000000
mov dword [rbx + 0x15ac], 0x40c00000
mov dword [rbx + 0x15b8], 0x41c80000
mov dword [rbx + 0x15c0], 0x41700000
mov dword [rbx + 0x15c4], 0x41100000
mov dword [rbx + 0x15c8], 0x40a00000
mov dword [rbx + 0x15cc], 0x40400000
call fcn.180026df0
movss xmm2, dword [0x18008c884]
lea rax, [rbp + 0xe0]
movss xmm1, dword [0x18008c894]
lea r9, [rbp + 0xf0]
mov qword [rsp + 0x28], rax
movaps xmm0, xmm6
lea rax, [rbp + 0xe8]
mov qword [rsp + 0x20], rax
call fcn.180026df0
movss xmm2, dword [0x18008c828]
lea rax, [rbp + 0xe0]
movss xmm1, dword [0x18008c83c]
lea r9, [rbp + 0xf0]
mov qword [rsp + 0x28], rax
movaps xmm0, xmm6
lea rax, [rbp + 0xe8]
mov qword [rsp + 0x20], rax
call fcn.180026df0
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0xf0]
lea rax, [rbp + 0xe8]
mov qword [rsp + 0x20], rax
movss xmm2, dword [0x18008c854]
movaps xmm0, xmm6
movss xmm1, dword [0x18008c868]
call fcn.180026df0
movss xmm0, dword [0x18008c9e4]
lea rax, [rbp + 0xf0]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0xe0]
lea rax, [rbp + 0xe8]
movaps xmm2, xmm8
movaps xmm1, xmm7
mov qword [rsp + 0x20], rax
call fcn.180026df0
movss xmm0, dword [rbp + 0xe0]
movss xmm1, dword [rbp + 0xe8]
movss xmm2, dword [rbp + 0xf0]
mov dword [rsp + 0x3c], 0x3f800000
movups xmm3, xmmword [rsp + 0x30]
movss xmm3, xmm0
movdqa xmm0, xmmword [0x18008cf40]
movups xmmword [rbx + 0x162c], xmm0
movdqa xmm0, xmmword [0x18008cd40]
movups xmmword [rbx + 0x165c], xmm0
movdqa xmm0, xmmword [0x18008d000]
movups xmmword [rbx + 0x170c], xmm0
movdqa xmm0, xmmword [0x18008ccc0]
movups xmmword [rbx + 0x175c], xmm0
movdqa xmm0, xmmword [0x18008d010]
movups xmmword [rbx + 0x176c], xmm0
movdqa xmm0, xmmword [0x18008cee0]
movups xmmword [rbx + 0x179c], xmm0
movdqa xmm0, xmmword [0x18008cf20]
movups xmmword [rbx + 0x167c], xmm0
movdqa xmm0, xmmword [0x18008ce30]
shufps xmm3, xmm3, 0xe1
movss xmm3, xmm1
movdqa xmm1, xmmword [0x18008cf70]
movups xmmword [rbx + 0x168c], xmm1
movdqa xmm1, xmmword [0x18008cad0]
movups xmmword [rbx + 0x16fc], xmm1
movdqa xmm1, xmmword [0x18008ced0]
movups xmmword [rbx + 0x180c], xmm0
movups xmmword [rbx + 0x183c], xmm0
movdqa xmm0, xmmword [0x18008cf80]
movups xmmword [rbx + 0x173c], xmm1
movups xmmword [rbx + 0x174c], xmm1
movdqa xmm1, xmmword [0x18008cf60]
movups xmmword [rbx + 0x169c], xmm0
movdqa xmm0, xmmword [0x18008cbd0]
movups xmmword [rbx + 0x178c], xmm1
movups xmmword [rbx + 0x17ac], xmm1
movdqa xmm1, xmmword [0x18008cbe0]
movups xmmword [rbx + 0x187c], xmm0
movdqa xmm0, xmmword [0x18008cd30]
shufps xmm3, xmm3, 0xc6
movups xmmword [rbx + 0x17bc], xmm1
movdqa xmm1, xmmword [0x18008cc60]
movss xmm3, xmm2
movdqa xmm2, xmmword [0x18008ce70]
movups xmmword [rbx + 0x189c], xmm0
movdqa xmm0, xmmword [0x18008ccd0]
movups xmmword [rbx + 0x188c], xmm1
movdqa xmm1, xmmword [0x18008cc00]
shufps xmm3, xmm3, 0xc9
movups xmmword [rbx + 0x16cc], xmm0
movdqa xmm0, xmmword [0x18008cc70]
movups xmmword [rbx + 0x160c], xmm3
movdqa xmm3, xmmword [0x18008d0f0]
movups xmmword [rbx + 0x16bc], xmm1
movdqa xmm1, xmmword [0x18008cd70]
movups xmmword [rbx + 0x18fc], xmm0
movups xmmword [rbx + 0x171c], xmm3
movups xmmword [rbx + 0x172c], xmm3
movups xmmword [rbx + 0x177c], xmm2
movups xmmword [rbx + 0x17ec], xmm2
movups xmmword [rbx + 0x17fc], xmm3
movups xmmword [rbx + 0x181c], xmm2
movups xmmword [rbx + 0x182c], xmm3
movups xmmword [rbx + 0x166c], xmm3
movups xmmword [rbx + 0x16ac], xmm3
movups xmmword [rbx + 0x16dc], xmm1
movdqa xmm1, xmmword [0x18008ce00]
movdqa xmm0, xmmword [0x18008cc80]
movups xmmword [rbx + 0x191c], xmm0
movdqa xmm0, xmmword [0x18008d0e0]
movups xmmword [rbx + 0x164c], xmm0
movdqa xmm0, xmmword [0x18008ccb0]
movups xmmword [rbx + 0x190c], xmm1
movups xmmword [rbx + 0x192c], xmm1
movdqa xmm1, xmmword [0x18008cc40]
movups xmmword [rbx + 0x161c], xmm0
movups xmmword [rbx + 0x16ec], xmm0
movups xmmword [rbx + 0x193c], xmm1
call fcn.1800475b0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
jmp fcn.1800474c0