Function at 0x14003f870
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 eax, r8d
mov rcx, rdx
mov edx, eax
lea r8, [r9 + 0x100000]
mov rbp, r9
call fcn.140040e80
call fcn.14003f400
movups xmm0, xmmword [rbp + 0x100040]
lea rbx, [rbp + 0x1000c8]
mov rcx, rax
movups xmm1, xmmword [rbp + 0x100050]
lea r15, [rbp + 0x100178]
movups xmmword [rbx], xmm0
lea rdx, [rbp + 0x100000]
mov qword [r15], rax
movups xmm0, xmmword [rbp + 0x100060]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x100070]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [rbp + 0x100080]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [rbp + 0x100090]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [rbp + 0x1000a0]
movups xmmword [rbx + 0x50], xmm1
movups xmm1, xmmword [rbp + 0x1000b0]
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm1
call fcn.14003f320
lea rax, [rbp + 0x100128]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x50], rax
lea r12, [rbp + 0x1000d8]
lea rax, [rbp + 0x100138]
mov qword [rsp + 0x28], r12
lea r13, [rbp + 0x1000e8]
mov qword [rsp + 0x58], rax
lea rdi, [rbp + 0x1000f8]
mov qword [rsp + 0x30], r13
lea rsi, [rbp + 0x100108]
mov qword [rsp + 0x38], rdi
lea r14, [rbp + 0x100118]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r14
nop
mov rax, qword [r15]
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
mov rcx, r12
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
mov rcx, r13
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
mov rcx, rdi
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
mov rcx, rsi
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
mov rcx, r14
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
lea rcx, [rbp + 0x100128]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [r15]
lea rcx, [rbp + 0x100138]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rbx]
movups xmmword [rax + rbp], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + rbp + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rax + rbp + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rax + rbp + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + rbp + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rax + rbp + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rax + rbp + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rax + rbp + 0x70], xmm1
sub rax, 0xffffffffffffff80
mov qword [rsp + 0x20], rax
cmp rax, 0x100000
jb 0x14003f980
mov rax, qword [rbp + 0x100000]
lea r15, [rbp + 0x100148]
xor rax, qword [rbp + 0x100020]
lea rbx, [rbp + 0x100158]
mov qword [r15], rax
lea r13, [rbp + 0x100168]
mov rax, qword [rbp + 0x100008]
mov r12d, 0x20000
xor rax, qword [rbp + 0x100028]
mov qword [r15 + 8], rax
mov rax, qword [rbp + 0x100010]
xor rax, qword [rbp + 0x100030]
mov qword [rbx], rax
mov rax, qword [rbp + 0x100018]
xor rax, qword [rbp + 0x100038]
mov qword [rbx + 8], rax
nop dword [rax]
mov edi, dword [r15]
mov r8, r15
and edi, 0xffff0
mov rdx, r13
add rdi, rbp
mov rcx, rdi
call fcn.14003e520
mov rax, qword [rbx]
xor rax, qword [r13]
mov qword [rdi], rax
mov rax, qword [r13 + 8]
xor rax, qword [rbx + 8]
mov qword [rdi + 8], rax
mov rax, qword [r13]
mov r10, qword [r15 + 8]
mov r14, rax
mov rdi, rax
and r14d, 0xffff0
shr rdi, 0x20
add r14, rbp
mov eax, eax
mov rsi, qword [r14]
mov r11, rsi
mov edx, esi
imul rdx, rdi
shr r11, 0x20
mov r9, r11
mov r8d, esi
imul r9, rax
imul r8, rax
add r9, rdx
movabs rax, 0x100000000
mov rcx, r9
shl rcx, 0x20
add rcx, r8
add r10, rcx
cmp r9, rdx
sbb rdx, rdx
and rdx, rax
mov rax, r10
cmp rcx, r8
mov r8, r15
adc rdx, 0
shr r9, 0x20
imul r11, rdi
add rdx, r11
add rdx, r9
add rdx, qword [r15]
xor rsi, rdx
mov qword [r15], rsi
xor rax, qword [r14 + 8]
mov qword [r15 + 8], rax
mov qword [r14], rdx
mov rdx, rbx
mov qword [r14 + 8], r10
mov edi, dword [r15]
and edi, 0xffff0
add rdi, rbp
mov rcx, rdi
call fcn.14003e520
mov rax, qword [r13]
xor rax, qword [rbx]
mov qword [rdi], rax
mov rax, qword [rbx + 8]
xor rax, qword [r13 + 8]
mov qword [rdi + 8], rax
mov rax, qword [rbx]
mov r14, rax
mov rdi, rax
and r14d, 0xffff0
shr rdi, 0x20
add r14, rbp
mov eax, eax
mov rsi, qword [r14]
mov r11, rsi
mov edx, esi
shr r11, 0x20
imul rdx, rdi
mov r8d, esi
mov r9, r11
imul r8, rax
mov r10, qword [r15 + 8]
imul r9, rax
movabs rax, 0x100000000
add r9, rdx
mov rcx, r9
shl rcx, 0x20
add rcx, r8
add r10, rcx
cmp r9, rdx
sbb rdx, rdx
and rdx, rax
mov rax, r10
cmp rcx, r8
adc rdx, 0
shr r9, 0x20
imul r11, rdi
add rdx, r11
add rdx, r9
add rdx, qword [r15]
xor rsi, rdx
mov qword [r15], rsi
xor rax, qword [r14 + 8]
mov qword [r15 + 8], rax
mov qword [r14], rdx
mov qword [r14 + 8], r10
sub r12, 1
jne 0x14003fae0
movups xmm0, xmmword [rbp + 0x100040]
lea rbx, [rbp + 0x1000c8]
movups xmm1, xmmword [rbp + 0x100050]
lea r15, [rbp + 0x100178]
mov rcx, qword [r15]
lea rdx, [rbp + 0x100020]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rbp + 0x100060]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x100070]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [rbp + 0x100080]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [rbp + 0x100090]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [rbp + 0x1000a0]
movups xmmword [rbx + 0x50], xmm1
movups xmm1, xmmword [rbp + 0x1000b0]
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm1
call fcn.14003f320
mov r12, qword [rsp + 0x28]
lea rdi, [rbp + 0x28]
mov rbp, qword [rsp + 0x38]
mov esi, 0x2000
mov r13, qword [rsp + 0x30]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdi - 0x28]
mov rcx, rbx
xor qword [rbx], rax
mov rax, qword [rdi - 0x20]
xor qword [rbx + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [rdi - 0x18]
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.14003e610
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.14003e610
mov rax, qword [rdi + 8]
mov rcx, rbp
xor qword [rbp], rax
mov rax, qword [rdi + 0x10]
xor qword [rbp + 8], rax
mov rax, qword [r15]
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x18]
call fcn.14003e610
mov rax, qword [rdi + 0x18]
mov rcx, qword [rsp + 0x40]
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.14003e610
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x48]
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.14003e610
mov rax, qword [rdi + 0x38]
mov rcx, qword [rsp + 0x50]
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.14003e610
mov rax, qword [rdi + 0x48]
mov rcx, qword [rsp + 0x58]
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.14003e610
lea rdi, [rdi + 0x80]
sub rsi, 1
jne 0x14003fd00
mov rbp, qword [rsp + 0xb8]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
lea rcx, [rbp + 0x100000]
movups xmmword [rbp + 0x100040], xmm0
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rbp + 0x100050], xmm1
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rbp + 0x100060], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rbp + 0x100070], xmm1
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rbp + 0x100080], xmm0
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rbp + 0x100090], xmm1
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rbp + 0x1000a0], xmm0
movups xmmword [rbp + 0x1000b0], xmm1
call fcn.140040960
movzx edi, byte [rbp + 0x100000]
lea rax, [0x1401cbc90]
mov r8, qword [rsp + 0xa0]
lea rcx, [rbp + 0x100000]
and edi, 3
mov edx, 0xc8
call qword [rax + rdi*8]
cmp dword [0x1432bf3a8], esi
je 0x14003fed1
mov r8d, edi
lea rdx, [0x140217d40]
lea ecx, [rsi + 4]
call fcn.1400432a0
test r15, r15
je 0x14003fef9
mov rcx, qword [r15]
test rcx, rcx
je 0x14003fef9
cmp qword [rcx], 0
je 0x14003feec
call fcn.14003f060
mov rcx, qword [r15]
call qword [0x14018c510]
mov qword [r15], 0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret