Function at 0x1400fb470
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov rax, qword [0x14014d030]
xor rax, rsp
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0xc0]
xor ebx, ebx
mov dword [rsp + 0x70], r9d
mov r13d, ebx
mov qword [rbp - 0x78], r8
mov r14d, ebx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x70], rbx
test rdx, rdx
je 0x1400fbf07
test r8, r8
je 0x1400fbf07
test r9d, r9d
je 0x1400fbf07
test rax, rax
je 0x1400fbf07
movups xmm0, xmmword [0x14014d07c]
mov eax, dword [0x14014d08c]
lea r15d, [rbx + 5]
mov dword [rbp + 0x18], 0x123174bb
lea rdi, [rbp]
movups xmmword [rbp], xmm0
mov dword [rbp + 0x1c], 0x86521ff8
mov r8d, ebx
mov dword [rbp + 0x20], 0x98d2438b
mov r9d, r15d
mov dword [rbp + 0x24], 0x7966ce12
movabs r12, 0xcccccccccccccccd
mov dword [rbp + 0x28], 0xc5d92014
mov dword [rbp + 0x10], eax
mov rcx, r8
mov rax, r12
mul r8
inc r8
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rbp + rcx*4 + 0x18]
xor dword [rdi], eax
lea rdi, [rdi + 4]
sub r9, 1
jne 0x1400fb533
movups xmm0, xmmword [rbp]
mov eax, dword [rbp + 0x10]
mov dword [rbp + 0x28], eax
movups xmmword [rbp + 0x18], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov r8d, IsOS
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r14, rax
test rax, rax
jne 0x1400fb594
mov esi, 0x8007000e
jmp 0x1400fbf49
movups xmm0, xmmword [0x14014dab8]
lea rcx, [rax + 0x60]
mov dword [rbp + 4], 0x86521ff8
lea rdx, [rcx + 0xa8]
mov dword [rbp + 8], 0x98d2438b
movups xmmword [rax], xmm0
mov edi, 0x80
lea r11, [rdx + 0x70]
movups xmm1, xmmword [0x14014dac8]
lea r10, [r11 + 0x14]
mov dword [rbp + 0xc], 0x7966ce12
mov r13d, 0x123174bb
mov dword [rbp + 0x10], 0xc5d92014
movups xmmword [rax + 0x10], xmm1
mov dword [rbp], r13d
movups xmm0, xmmword [0x14014dad8]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [0x14014dae8]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [0x14014daf8]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [0x14014db08]
movups xmmword [rax + 0x50], xmm1
mov qword [rax], rcx
mov rax, qword [0x14014dab8]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, rdi
movups xmm0, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax + rdi]
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rax + rdi + 0x10]
movups xmmword [rcx + 0x10], xmm0
mov rax, qword [rax + rdi + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [r14]
mov qword [rax + 0x58], rdx
mov rax, qword [0x14014dab8]
mov rdx, qword [rax + 0x58]
mov rax, qword [r14]
movups xmm0, xmmword [rdx]
mov rcx, qword [rax + 0x58]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdx + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdx + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdx + 0x60]
lea rdx, [r10 + 0x14]
movups xmmword [rcx + 0x60], xmm0
mov rax, qword [r14]
mov rcx, qword [rax + 0x58]
mov qword [rcx + 0x38], rdx
mov rax, qword [r14]
mov rcx, qword [rax + 0x58]
mov rax, qword [0x14014dab8]
mov rsi, qword [rcx + 0x38]
mov rcx, qword [rax + 0x58]
mov rax, qword [rcx + 0x38]
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
movups xmmword [rbp + 0x30], xmm0
mov dword [rbp + 0x40], eax
lea rdi, [rbp + 0x30]
mov r8, rbx
mov r9, r15
mov rcx, r8
mov rax, r12
mul r8
inc r8
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rbp + rcx*4]
xor dword [rdi], eax
lea rdi, [rdi + 4]
sub r9, 1
jne 0x1400fb706
movups xmm0, xmmword [rbp + 0x30]
mov eax, dword [rbp + 0x40]
lea rdi, [rbp + 0x30]
mov dword [rbp], r13d
mov r8, rbx
movups xmmword [rsi], xmm0
mov dword [rsi + 0x10], eax
mov r9, r15
mov qword [r14 + 8], r11
mov esi, 0x86521ff8
mov rax, qword [0x14014dac0]
mov dword [rbp + 4], esi
mov dword [rbp + 8], 0x98d2438b
mov dword [rbp + 0xc], 0x7966ce12
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x10], 0xc5d92014
movups xmmword [rbp + 0x30], xmm0
mov dword [rbp + 0x40], eax
mov rcx, r8
mov rax, r12
mul r8
inc r8
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rbp + rcx*4]
xor dword [rdi], eax
lea rdi, [rdi + 4]
sub r9, 1
jne 0x1400fb77d
movups xmm0, xmmword [rbp + 0x30]
mov eax, dword [rbp + 0x40]
lea rdi, [rbp + 0x30]
mov dword [rbp], r13d
mov r8, rbx
movups xmmword [r11], xmm0
mov dword [r11 + 0x10], eax
mov r9, r15
mov qword [r14 + 0x10], r10
mov rax, qword [0x14014dac8]
mov dword [rbp + 4], esi
mov dword [rbp + 8], 0x98d2438b
mov dword [rbp + 0xc], 0x7966ce12
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x10], 0xc5d92014
movups xmmword [rbp + 0x30], xmm0
mov dword [rbp + 0x40], eax
mov rcx, r8
mov rax, r12
mul r8
inc r8
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rbp + rcx*4]
xor dword [rdi], eax
lea rdi, [rdi + 4]
sub r9, 1
jne 0x1400fb7f1
movups xmm0, xmmword [rbp + 0x30]
mov eax, dword [rbp + 0x40]
movups xmmword [r10], xmm0
mov dword [r10 + 0x10], eax
mov esi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov r8d, 0x664
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r13, rax
test rax, rax
jne 0x1400fb855
mov esi, 0x8007000e
jmp 0x1400fbf0c
lea r12, [rax + 0x100]
lea rcx, [r12 + 0x100]
lea r15, [rcx + 0x28]
lea rax, [r15 + 0x400]
mov qword [rsp + 0x78], rax
lea rdi, [rbp + 0x30]
mov rax, qword [rsp + 0x60]
cmp rdi, rax
je 0x1400fb899
movups xmm1, xmmword [rax + 0x10]
movsd xmm0, qword [rax + 0x20]
movups xmm2, xmmword [rax]
movups xmmword [rbp + 0x40], xmm1
movsd qword [rbp + 0x50], xmm0
jmp 0x1400fb89d
movups xmm2, xmmword [rbp + 0x30]
mov eax, dword [rbp + 0x40]
movups xmm0, xmmword [rbp + 0x44]
movups xmmword [rcx], xmm2
mov dword [rcx + 0x10], eax
mov eax, dword [rbp + 0x54]
movups xmmword [rcx + 0x14], xmm0
mov dword [rcx + 0x24], eax
lea rcx, [rbp + 0x30]
mov rax, qword [rsp + 0x68]
cmp rcx, rax
je 0x1400fb8dd
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp], xmm0
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x40], xmm1
jmp 0x1400fb8e5
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rbp], xmm0
mov rax, qword [r14]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0xc]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x68], rax
mov rdi, rax
test rax, rax
je 0x1400fb957
movups xmm0, xmmword [rbp]
mov r9, qword [rsp + 0x60]
mov edx, 5
mov r8, qword [rsp + 0x78]
mov rcx, rdi
movups xmmword [rax], xmm0
mov eax, dword [rbp + 0x40]
mov dword [rdi + 0x10], eax
call fcn.140102634
xor eax, eax
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [rsp + 0x68]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [r14]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0xc]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x68], rax
mov rdi, rax
test rax, rax
je 0x1400fb9cd
movups xmm0, xmmword [rbp + 0x44]
mov r8, qword [rsp + 0x78]
mov edx, 5
mov r9, qword [rsp + 0x60]
add r8, 0x14
movups xmmword [rax], xmm0
mov eax, dword [rbp + 0x54]
mov rcx, rdi
mov dword [rdi + 0x10], eax
call fcn.140102634
xor eax, eax
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [rsp + 0x68]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsp + 0x78]
xor ecx, ecx
mov qword [rdi + 0x28], rcx
mov qword [rdi + 0x30], rcx
mov dword [rdi + 0x38], ecx
lea rcx, [rbp - 0x60]
call fcn.1400fcf2c
mov edx, dword [rsp + 0x70]
lea r8, [rbp - 0x60]
mov rcx, qword [rbp - 0x78]
call fcn.1400fcf70
lea rdx, [rdi + 0x28]
lea rcx, [rbp - 0x60]
call fcn.1400fd25c
xor eax, eax
lea rdi, [rbp - 0x60]
mov rdx, r14
lea ecx, [rax + 0x5c]
rep stosb byte [rdi], al
mov rcx, qword [rsp + 0x78]
call fcn.1401036d0
test eax, eax
jne 0x1400fba2c
mov esi, 0x800480d5
jmp 0x1400fbf0c
mov edx, dword [0x14014d090]
lea rax, [r12 + 0x100]
mov ecx, edx
test rdx, rdx
je 0x1400fba5c
lea rdi, [rdx - 1]
lea rdi, [rax + rdi*4]
cmp dword [rdi], ebx
jne 0x1400fba57
sub rdi, 4
sub rcx, 1
jne 0x1400fba49
test rcx, rcx
jne 0x1400fba86
lea rdi, [rax + 0x14]
mov rcx, rdx
test rdx, rdx
je 0x1400fba8a
lea r8, [rdx - 1]
lea r8, [rdi + r8*4]
cmp dword [r8], ebx
jne 0x1400fba7f
sub r8, 4
sub rcx, 1
jne 0x1400fba70
test rcx, rcx
je 0x1400fba8a
jmp 0x1400fba22
lea rdi, [rax + 0x14]
mov rcx, rdx
test rdx, rdx
je 0x1400fbaba
lea r9, [rbp + 0x18]
mov r8, rax
sub r8, r9
dec rcx
lea rax, [r8 + rcx*4]
mov r9d, dword [rbp + rax + 0x18]
mov eax, dword [rbp + rcx*4 + 0x18]
cmp eax, r9d
jne 0x1400fbb7c
test rcx, rcx
jne 0x1400fba9c
mov eax, ebx
test eax, eax
jns 0x1400fba22
mov rcx, rdx
test rdx, rdx
je 0x1400fbaf4
lea rax, [rbp + 0x18]
mov r8, rdi
sub r8, rax
dec rcx
lea rax, [r8 + rcx*4]
mov r9d, dword [rbp + rax + 0x18]
mov eax, dword [rbp + rcx*4 + 0x18]
cmp eax, r9d
jne 0x1400fbb88
test rcx, rcx
jne 0x1400fbad6
mov eax, ebx
test eax, eax
jns 0x1400fba22
mov qword [rsp + 0x48], rbx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
lea r8, [rbp + 0x18]
mov qword [rsp + 0x30], r12
mov r9, rdx
mov rcx, rdi
mov qword [rsp + 0x20], r13
call fcn.14010098c
movsxd rdx, eax
lea r8, [rsp + 0x70]
mov eax, 1
mov rcx, r12
mov r9d, eax
mov dword [rsp + 0x70], eax
call fcn.140100330
test eax, eax
jne 0x1400fba22
mov rcx, qword [rsp + 0x78]
mov rdx, r12
add rcx, 0x28
call fcn.1400fb190
test eax, eax
je 0x1400fba22
mov edi, dword [0x14014d090]
mov edx, edi
mov qword [rsp + 0x70], rdx
cmp rdi, rdi
jbe 0x1400fbb94
mov rcx, r13
mov rax, r12
jmp 0x1400fbb9a
sbb eax, eax
and eax, 2
dec eax
jmp 0x1400fbabc
sbb eax, eax
and eax, 2
dec eax
jmp 0x1400fbaf6
mov rax, r13
mov rcx, r12
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], rax
cmp r13, r15
je 0x1400fbc6a
cmp r12, r15
je 0x1400fbc6a
test rdx, rdx
jne 0x1400fbbcf
mov r8, rdi
mov rcx, r15
shl r8, 2
call sub.msvcrt.dll_memset
jmp 0x1400fbc6a
mov edx, dword [rax]
mov r9, rdi
mov r8, r15
call fcn.140100954
mov dword [r15 + rdi*4], eax
mov rax, qword [rsp + 0x70]
cmp rax, 1
je 0x1400fbc6a
mov r9, qword [rsp + 0x60]
lea r8, [r15 + 4]
mov rdx, qword [rsp + 0x68]
sub r9, r15
sub rdx, r15
sub rdx, 4
dec rax
mov qword [rsp + 0x60], rax
mov r10d, ebx
test rdi, rdi
je 0x1400fbc4a
mov esi, dword [r9 + r8]
mov r11, r8
mov r12, rdi
mov eax, dword [r11]
mov ecx, dword [rdx + r11]
imul rcx, rsi
add rcx, rax
mov eax, r10d
add rcx, rax
mov r10, rcx
mov dword [r11], ecx
shr r10, 0x20
lea r11, [r11 + 4]
sub r12, 1
jne 0x1400fbc1d
mov rax, qword [rsp + 0x60]
mov dword [r8 + rdi*4], r10d
sub rdx, 4
add r8, 4
sub rax, 1
mov qword [rsp + 0x60], rax
jne 0x1400fbc0b
mov esi, ebx
lea r12, [r13 + 0x100]
mov eax, dword [0x14014d090]
lea r8, [rbp + 0x18]
mov r9d, eax
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rbx
mov rcx, r15
lea edx, [rax + rax]
lea rax, [0x14014dbc0]
mov qword [rsp + 0x20], rax
call fcn.1401018cc
mov eax, dword [0x14014d090]
lea rcx, [0x14014d0bc]
mov qword [rsp + 0x30], r14
mov r9, r12
mov qword [rsp + 0x28], r15
mov r8d, 0x3c
mov qword [rsp + 0x20], rax
call fcn.1400fd5c8
test eax, eax
je 0x1400fba22
mov edi, dword [0x14014d090]
lea rax, [r12 + 0x100]
mov qword [rsp + 0x60], rdi
mov r8d, edi
cmp rdi, rdi
jbe 0x1400fbcf7
mov rcx, r13
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rcx
mov rdx, rax
jmp 0x1400fbd07
mov rdx, r13
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rdx
mov rcx, rax
lea r10, [r15 + 0x200]
cmp r13, r10
je 0x1400fbdeb
cmp rax, r10
je 0x1400fbdeb
test r8, r8
jne 0x1400fbd3b
mov r8, rdi
xor edx, edx
shl r8, 2
mov rcx, r10
call sub.msvcrt.dll_memset
jmp 0x1400fbde4
mov edx, dword [rdx]
mov r9, rdi
mov r8, r10
call fcn.140100954
lea r10, [r15 + 0x200]
mov dword [r10 + rdi*4], eax
mov rax, qword [rsp + 0x60]
cmp rax, 1
je 0x1400fbdeb
mov rdx, qword [rsp + 0x68]
lea r8, [r10 + 4]
mov r9, qword [rsp + 0x70]
sub rdx, r10
sub rdx, 4
sub r9, r10
dec rax
mov qword [rsp + 0x60], rax
mov r11d, ebx
test rdi, rdi
je 0x1400fbdc4
mov esi, dword [r9 + r8]
mov r12, r8
mov r10, rdi
mov eax, dword [r12]
mov ecx, dword [rdx + r12]
imul rcx, rsi
add rcx, rax
mov eax, r11d
add rcx, rax
mov r11, rcx
mov dword [r12], ecx
shr r11, 0x20
lea r12, [r12 + 4]
sub r10, 1
jne 0x1400fbd94
mov rax, qword [rsp + 0x60]
mov dword [r8 + rdi*4], r11d
sub rdx, 4
add r8, 4
sub rax, 1
mov qword [rsp + 0x60], rax
jne 0x1400fbd82
mov esi, ebx
lea r12, [r13 + 0x100]
lea r10, [r15 + 0x200]
mov eax, dword [0x14014d090]
lea r8, [rbp + 0x18]
mov r9d, eax
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rbx
mov rcx, r10
lea edx, [rax + rax]
lea rax, [0x14014dbc0]
mov qword [rsp + 0x20], rax
call fcn.1401018cc
mov rcx, qword [rsp + 0x78]
mov rdx, r14
call fcn.1401036d0
test eax, eax
je 0x1400fba22
mov eax, dword [0x14014d090]
lea rdi, [r15 + 0x200]
mov qword [rsp + 0x30], r14
lea rcx, [rdi + 0x200]
mov qword [rsp + 0x28], rdi
mov r9, r12
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.1400fd5c8
test eax, eax
je 0x1400fba22
mov r9d, 1
mov qword [rsp + 0x20], r14
mov r8, r15
mov rdx, rdi
mov rcx, r15
call fcn.140102cb0
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call fcn.1401034ac
test eax, eax
jne 0x1400fba22
mov r9d, dword [0x14014d090]
lea rax, [0x14014dbc0]
mov rdx, qword [r14]
lea r8, [rbp + 0x18]
mov qword [rsp + 0x28], r12
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.1400fb324
test eax, eax
je 0x1400fba22
mov ecx, dword [0x14014d090]
test rcx, rcx
je 0x1400fbef3
lea rax, [r12 + 0x100]
sub rax, r12
lea rdx, [r12 + rcx*4]
lea rdx, [rdx - 4]
dec rcx
mov edi, dword [rax + rdx]
mov r8d, dword [rdx]
cmp r8d, edi
jne 0x1400fbefe
test rcx, rcx
jne 0x1400fbedc
mov eax, ebx
test eax, eax
je 0x1400fbf0c
jmp 0x1400fba22
sbb eax, eax
and eax, 2
dec eax
jmp 0x1400fbef5
mov esi, 0x80070057
test r14, r14
je 0x1400fbf49
mov rax, qword [r14]
mov rdi, qword [rax + 0x58]
xor eax, eax
mov rdi, qword [rdi + 0x38]
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
mov rdi, qword [r14 + 8]
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
mov rdi, qword [r14 + 0x10]
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
lea rdi, [rbp + 0x18]
lea ecx, [rax + 0x14]
rep stosb byte [rdi], al
test r13, r13
je 0x1400fbf77
mov rdi, r13
mov ecx, 0x664
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r13
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
setns bl
mov eax, ebx
mov rcx, qword [rbp + 0x58]
xor rcx, rsp
call fcn.140106ed0
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret