Function at 0x1400145e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, r8
mov rcx, rdx
lea r8, [r9 + 0x200000]
mov edx, eax
mov r13, r9
call fcn.1400109f0
mov edx, 1
lea ecx, [rdx + 0x1f]
call qword [sym.imp.MSVCR120.dll_calloc]
mov rdi, rax
test rax, rax
jne 0x140014633
xor r12d, r12d
mov edi, r12d
jmp 0x14001466a
call fcn.140014010
mov ecx, eax
call qword [sym.imp.MSVCR120.dll_srand]
xor r12d, r12d
mov eax, 0xfffe
and word [rdi + 8], ax
mov qword [rdi], r12
mov ebx, r12d
call qword [sym.imp.MSVCR120.dll_rand]
inc rbx
mov byte [rdi + rbx + 9], al
cmp rbx, 0x10
jb 0x140014652
or word [rdi + 8], 2
movups xmm0, xmmword [r13 + 0x200040]
movups xmm1, xmmword [r13 + 0x200050]
lea rbx, [r13 + 0x2000c8]
lea r15, [r13 + 0x200178]
lea rdx, [r13 + 0x200000]
mov rcx, rdi
mov qword [r15], rdi
movups xmmword [rbx], xmm0
movups xmm0, xmmword [r13 + 0x200060]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [r13 + 0x200070]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [r13 + 0x200080]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [r13 + 0x200090]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [r13 + 0x2000a0]
movups xmmword [rbx + 0x50], xmm1
movups xmm1, xmmword [r13 + 0x2000b0]
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm1
call fcn.140014490
lea rax, [r13 + 0x200118]
lea rdi, [r13 + 0x2000d8]
mov qword [rsp + 0x48], rax
lea rax, [r13 + 0x200128]
lea rsi, [r13 + 0x2000e8]
mov qword [rsp + 0x50], rax
lea rbp, [r13 + 0x2000f8]
lea r14, [r13 + 0x200108]
lea rax, [r13 + 0x200138]
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x58], rax
mov rax, qword [r15]
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
mov rcx, rdi
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
mov rcx, rsi
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
mov rcx, rbp
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
mov rcx, r14
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
lea rcx, [r13 + 0x200118]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
lea rcx, [r13 + 0x200128]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [r15]
lea rcx, [r13 + 0x200138]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rbx]
sub rax, 0xffffffffffffff80
mov qword [rsp + 0x20], rax
movups xmmword [rax + r13 - 0x80], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + r13 - 0x70], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rax + r13 - 0x60], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rax + r13 - 0x50], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + r13 - 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rax + r13 - 0x30], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rax + r13 - 0x20], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rax + r13 - 0x10], xmm1
cmp rax, 0x200000
jb 0x140014742
mov rax, qword [r13 + 0x200000]
lea r15, [r13 + 0x200148]
lea rbx, [r13 + 0x200158]
xor rax, qword [r13 + 0x200020]
lea rsi, [r13 + 0x200168]
mov qword [rsp + 0x20], 0x40000
mov qword [r15], rax
mov rax, qword [r13 + 0x200008]
xor rax, qword [r13 + 0x200028]
mov qword [r15 + 8], rax
mov rax, qword [r13 + 0x200010]
xor rax, qword [r13 + 0x200030]
mov qword [rbx], rax
mov rax, qword [r13 + 0x200018]
xor rax, qword [r13 + 0x200038]
xor r12d, r12d
mov qword [rbx + 8], rax
nop
mov eax, dword [r15]
mov r8, r15
mov rdx, rsi
shr rax, 4
and eax, 0x1ffff
add rax, rax
lea rdi, [rax*8]
add rdi, r13
mov rcx, rdi
call fcn.14000bfc0
mov rax, qword [rsi]
mov r9, r12
xor rax, qword [rbx]
mov qword [rdi], rax
mov rax, qword [rsi + 8]
xor rax, qword [rbx + 8]
mov qword [rdi + 8], rax
mov rax, qword [rsi]
mov r11, qword [r15 + 8]
mov r14, rax
mov rsi, rax
mov eax, eax
shr r14, 4
shr rsi, 0x20
and r14d, 0x1ffff
shl r14, 4
add r14, r13
mov rbp, qword [r14]
mov rdi, rbp
mov edx, ebp
mov r8d, ebp
shr rdi, 0x20
mov r10, rdi
imul r8, rax
imul rdx, rsi
imul r10, rax
add r10, rdx
mov rcx, r10
shl rcx, 0x20
add rcx, r8
add r11, rcx
cmp r10, rdx
mov rdx, rbx
setb r9b
mov rax, r11
shl r9, 0x20
cmp rcx, r8
mov r8, r15
adc r9, r12
shr r10, 0x20
imul rdi, rsi
add r9, rdi
add r9, r10
add r9, qword [r15]
xor rbp, r9
mov qword [r15], rbp
xor rax, qword [r14 + 8]
mov qword [r15 + 8], rax
mov qword [r14], r9
mov qword [r14 + 8], r11
mov eax, dword [r15]
shr rax, 4
and eax, 0x1ffff
add rax, rax
lea rdi, [rax*8]
add rdi, r13
mov rcx, rdi
call fcn.14000bfc0
mov rax, qword [r13 + 0x200168]
xor rax, qword [rbx]
mov qword [rdi], rax
mov rax, qword [rbx + 8]
xor rax, qword [r13 + 0x200170]
mov qword [rdi + 8], rax
mov rax, qword [rbx]
mov r14, rax
shr r14, 4
and r14d, 0x1ffff
shl r14, 4
add r14, r13
mov rbp, qword [r14]
mov r11, qword [r15 + 8]
mov rsi, rax
mov eax, eax
shr rsi, 0x20
mov rdi, rbp
mov edx, ebp
shr rdi, 0x20
mov r8d, ebp
mov r9, r12
imul rdx, rsi
mov r10, rdi
imul r8, rax
imul r10, rax
add r10, rdx
mov rcx, r10
shl rcx, 0x20
add rcx, r8
add r11, rcx
cmp r10, rdx
setb r9b
mov rax, r11
shl r9, 0x20
cmp rcx, r8
adc r9, r12
shr r10, 0x20
imul rdi, rsi
lea rsi, [r13 + 0x200168]
add r9, rdi
add r9, r10
add r9, qword [r15]
xor rbp, r9
mov qword [r15], rbp
xor rax, qword [r14 + 8]
dec qword [rsp + 0x20]
mov qword [r15 + 8], rax
mov qword [r14], r9
mov qword [r14 + 8], r11
jne 0x1400148b0
movups xmm0, xmmword [r13 + 0x200040]
movups xmm1, xmmword [r13 + 0x200050]
lea rbx, [r13 + 0x2000c8]
lea r15, [r13 + 0x200178]
lea rdx, [r13 + 0x200020]
mov rcx, qword [r15]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [r13 + 0x200060]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [r13 + 0x200070]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [r13 + 0x200080]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [r13 + 0x200090]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [r13 + 0x2000a0]
movups xmmword [rbx + 0x50], xmm1
movups xmm1, xmmword [r13 + 0x2000b0]
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm1
call fcn.140014490
mov r12, qword [rsp + 0x30]
lea rdi, [r13 + 0x18]
mov r13, qword [rsp + 0x28]
mov esi, 0x4000
mov rax, qword [rdi - 0x18]
mov rcx, rbx
xor qword [rbx], rax
mov rax, qword [rdi - 0x10]
xor qword [rbx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi - 8]
mov rcx, r13
xor qword [r13], rax
mov rax, qword [rdi]
xor qword [r13 + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 8]
mov rcx, r12
xor qword [r12], rax
mov rax, qword [rdi + 0x10]
xor qword [r12 + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 0x18]
mov rcx, qword [rsp + 0x38]
xor qword [rcx], rax
mov rax, qword [rdi + 0x20]
xor qword [rcx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x40]
xor qword [rcx], rax
mov rax, qword [rdi + 0x30]
xor qword [rcx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 0x38]
mov rcx, qword [rsp + 0x48]
xor qword [rcx], rax
mov rax, qword [rdi + 0x40]
xor qword [rcx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 0x48]
mov rcx, qword [rsp + 0x50]
xor qword [rcx], rax
mov rax, qword [rdi + 0x50]
xor qword [rcx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
mov rax, qword [rdi + 0x58]
mov rcx, qword [rsp + 0x58]
xor qword [rcx], rax
mov rax, qword [rdi + 0x60]
xor qword [rcx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14000c0b0
lea rdi, [rdi + 0x80]
dec rsi
jne 0x140014af2
mov r13, qword [rsp + 0xb8]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
lea rcx, [r13 + 0x200000]
movups xmmword [r13 + 0x200040], xmm0
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [r13 + 0x200050], xmm1
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [r13 + 0x200060], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [r13 + 0x200070], xmm1
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [r13 + 0x200080], xmm0
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [r13 + 0x200090], xmm1
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [r13 + 0x2000a0], xmm0
movups xmmword [r13 + 0x2000b0], xmm1
call fcn.1400107d0
movzx eax, byte [r13 + 0x200000]
mov r8, qword [rsp + 0xa0]
lea r9, [0x14006a990]
lea rcx, [r13 + 0x200000]
and eax, 3
mov edx, reloc.WLDAP32.dll_Ordinal_200
call qword [r9 + rax*8]
mov r12, rsi
test r15, r15
je 0x140014d32
mov rbx, qword [r15]
test rbx, rbx
je 0x140014d32
cmp qword [rbx], rsi
je 0x140014d26
mov rax, qword [rbx]
test rax, rax
je 0x140014d26
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140014ce6
call qword [sym.imp.MSVCR120.dll_free]
mov rax, qword [rbx]
mov qword [rax + 8], rsi
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x140014cff
call qword [sym.imp.MSVCR120.dll_free]
mov rax, qword [rbx]
mov qword [rax + 0x18], r12
mov rax, qword [rbx]
mov qword [rax], r12
mov rax, qword [rbx]
mov qword [rax + 0x10], r12
mov rax, qword [rbx]
mov qword [rax + 0x20], r12
mov rax, qword [rbx]
mov qword [rax + 0x28], r12
mov rcx, qword [rbx]
call qword [sym.imp.MSVCR120.dll_free]
mov qword [rbx], r12
mov rcx, qword [r15]
call qword [sym.imp.MSVCR120.dll_free]
mov qword [r15], r12
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret