Function at 0x140139c50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x388
mov rbp, r9
mov rbx, r8
mov rsi, rdx
mov r14, rcx
mov qword [rsp + 0x110], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x118], xmm0
lea r12, [rsp + 0x110]
mov r8d, 0x20
mov rcx, r12
xor edx, edx
call fcn.14019e5b0
mov r13, qword [rsp + 0x3f0]
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x120]
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
add rdx, 0x20
mov qword [rsp + 0x80], rdx
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x70], xmm0
mov r15, qword [rsp + 0x70]
cmp rdx, 0x20
jne 0x14013a695
movzx edi, byte [rsp + 0x3f8]
lea rax, [rsi + 0x1c8]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
cmp qword [rsp + 0x78], 0
je 0x140139d25
mov edx, 1
mov rcx, r15
call fcn.140020450
test dil, dil
je 0x140139e00
movabs rax, 0x14452474e574f44
cmp qword [rsi + 0x1e0], rax
jne 0x140139e00
mov byte [rsp + 0x110], 1
mov byte [rsp + 0x112], 0xd
mov word [rsp + 0x1b8], 0x1f
mov word [rsp + 0x1c8], 4
cmp byte [rbx + 0x40], 2
sete r8b
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.140127490
mov byte [rbx + 0x141], 1
mov word [r14], 8
mov rax, qword [rsi + 0xb0]
lock dec qword [rax]
jne 0x140139da7
lea rcx, [rsi + 0xb0]
call fcn.140137990
cmp byte [rsi + 0xa8], 2
je 0x140139db9
lea rcx, [rsi + 0x28]
call fcn.14012f160
cmp byte [rsi], 0
jne 0x140139dd3
cmp qword [rsi + 0x10], 0
je 0x140139dd3
mov rcx, qword [rsi + 8]
mov edx, 1
call fcn.140020450
mov rcx, qword [rsi + 0x190]
test rcx, rcx
je 0x14013a132
cmp qword [rsi + 0x198], 0
je 0x14013a132
mov edx, 1
call fcn.140020450
jmp 0x14013a132
mov qword [rsp + 0x38], rbp
mov rcx, qword [r13 + 0x58]
test rcx, rcx
mov qword [rsp + 0x40], r14
je 0x140139f63
mov rax, qword [r13 + 0x48]
shl rcx, 3
lea rcx, [rcx + rcx*4]
xor edx, edx
mov r8d, 0x3f7f
jmp 0x140139e39
add rdx, 0x28
cmp rcx, rdx
je 0x140139e57
movzx r9d, word [rax + rdx]
mov bpl, 1
bt r8, r9
jb 0x140139e30
cmp r9, 0xe
jne 0x140139e59
cmp word [rax + rdx + 0x20], 0x13
jne 0x140139e30
jmp 0x140139e59
xor ebp, ebp
mov byte [rsi + 0x1e8], bpl
xor edx, edx
jmp 0x140139e79
add rdx, 0x28
cmp rcx, rdx
je 0x140139ea1
movzx r8d, word [rax + rdx]
lea r9, [r8 - 3]
cmp r9, 0xb
jb 0x140139e70
cmp r8d, 2
jb 0x140139e70
mov r12b, 1
cmp r8d, 0xe
jne 0x140139ea4
cmp word [rax + rdx + 0x20], 0x14
jne 0x140139e70
jmp 0x140139ea4
xor r12d, r12d
xor edx, edx
mov r8d, 0x3eff
jmp 0x140139eb9
add rdx, 0x28
cmp rcx, rdx
je 0x140139ed7
movzx r9d, word [rax + rdx]
mov r15b, 1
bt r8, r9
jb 0x140139eb0
cmp r9, 0xe
jne 0x140139eda
cmp word [rax + rdx + 0x20], 5
jne 0x140139eb0
jmp 0x140139eda
xor r15d, r15d
mov r8d, 0x3dff
jmp 0x140139ef6
add rcx, 0xffffffffffffffd8
je 0x140139f72
mov rdx, rax
add rax, 0x28
movzx r9d, word [rdx]
movzx r10d, r9w
bt r8, r10
jb 0x140139ef0
cmp r10, 0xe
jne 0x140139f18
cmp word [rdx + 0x20], 0x11
jne 0x140139ef0
cmp r9w, 9
jne 0x140139f72
mov r8, qword [rdx + 0x18]
test r8, r8
je 0x140139f58
mov rdx, qword [rdx + 8]
lea rax, [r8*8]
lea rax, [rax + rax*2]
mov rcx, rdx
nop dword [rax + rax]
test rax, rax
je 0x14013a651
add rax, 0xffffffffffffffe8
cmp qword [rcx + 0x10], 0
lea rcx, [rcx + 0x18]
jne 0x140139f40
mov word [r14], 0x1908
jmp 0x140139d8e
mov byte [rsi + 0x1e8], 0
xor ebp, ebp
xor r12d, r12d
xor r15d, r15d
mov qword [rsp + 0x50], 0
lea rdi, [rsi + 0x1a8]
lea rax, [rsi + 0x20]
mov qword [rsp + 0x48], rax
movzx eax, byte [rsi + 0xa8]
cmp al, 2
je 0x140139ff4
mov rcx, qword [rsi + 0xa0]
cmp rcx, qword [r13 + 0x40]
jne 0x140139ff4
lea r14, [r13 + 0x20]
test rcx, rcx
je 0x14013a146
lea rdx, [rcx - 0x21]
cmp rdx, 0xffffffffffffffe0
jb 0x14013a67d
xor edx, edx
xor r8d, r8d
nop word cs:[rax + rax]
movzx r9d, byte [r14 + r8]
xor r9b, byte [rsi + r8 + 0x80]
lea r10, [r8 + 1]
or dl, r9b
mov r8, r10
cmp rcx, r10
jne 0x140139fd0
test dl, dl
je 0x14013a146
mov rbx, qword [rsi + 0xb0]
lea rcx, [rsp + 0x130]
mov r8d, 0x90
mov rdx, qword [rsp + 0x48]
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r13 + 0x20]
movups xmm1, xmmword [r13 + 0x30]
movaps xmmword [rsp + 0x2d0], xmm1
movaps xmmword [rsp + 0x2c0], xmm0
mov rax, qword [r13 + 0x40]
mov qword [rsp + 0x2e0], rax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x120], xmm1
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rsp + 0x2e8], xmm0
movups xmmword [rsp + 0x2f8], xmm1
movups xmmword [rsp + 0x308], xmm2
movups xmmword [rsp + 0x318], xmm3
add rsi, 0xb8
lea rcx, [rsp + 0x1c8]
mov r8d, 0xf0
mov rdx, rsi
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x328], xmm0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x338], rax
mov qword [rsp + 0x1c0], rbx
mov byte [rsp + 0x340], bpl
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x2b8], rax
mov byte [rsp + 0x341], r15b
mov byte [rsp + 0x342], r12b
movzx eax, byte [0x1402e91f8]
mov ecx, 0x238
mov edx, 8
call fcn.1400203c0
test rax, rax
je 0x14013a6a8
mov rsi, rax
lea rdx, [rsp + 0x110]
mov r8d, 0x238
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 8], rsi
lea rax, fcn.140143090
mov qword [rcx + 0x10], rax
mov byte [rcx], 0x14
add rsp, 0x388
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
movzx edx, word [rcx + 8]
mov r8, qword [rsp + 0x38]
cmp dx, word [r8 + 8]
jne 0x14013a193
movzx edx, dx
cmp edx, 0x178
jne 0x14013a178
movzx ecx, word [rcx + 0xa]
mov rdx, qword [rsp + 0x38]
cmp cx, word [rdx + 0xa]
jne 0x14013a193
test al, al
setne al
cmp bpl, al
je 0x14013a1a4
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2b08
xor ebx, ebx
jmp 0x14013a5ed
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2a08
xor ebx, ebx
jmp 0x14013a5ed
mov rdx, qword [rsi + 0x50]
cmp rdx, 0x30
jne 0x14013a6b9
mov rax, qword [rsi + 0x40]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x70], rcx
lea r9, [rsp + 0x78]
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rsp + 0xa8], xmm3
movups xmmword [rsp + 0x98], xmm2
movups xmmword [rsp + 0x88], xmm1
movups xmmword [rsp + 0x78], xmm0
lea rdx, [rsp + 0xb8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rsp + 0xb8], xmm0
movups xmmword [rsp + 0xc8], xmm1
movups xmmword [rsp + 0xd8], xmm2
mov rdi, qword [rsi + 0xb0]
mov rax, qword [rdi + 0xa0]
mov rcx, qword [rdi + 0xa8]
mov r8, qword [rcx + 0x10]
mov r10, qword [rcx + 0x18]
dec r8
and r8, 0xfffffffffffffff0
lea rcx, [r8 + rax]
add rcx, 0x10
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, [0x140249a32]
mov r8d, 0xd
call r10
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.1401431b0
mov rdx, qword [rsi + 0x58]
mov r8, qword [rsi + 0x68]
lea rcx, [rsp + 0x110]
call fcn.14012f8e0
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x100], rax
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0xf0], xmm0
lea r15, [rbx + 0x100]
mov r13, qword [rbx + 0x100]
test r13, r13
je 0x14013a326
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0x38], rdi
mov r15, qword [rbx + 0x110]
test r15, r15
je 0x14013a302
lea rdi, [r13 + 8]
jmp 0x14013a2ec
add rdi, 0x18
dec r15
je 0x14013a302
cmp qword [rdi], 0
je 0x14013a2e3
mov rcx, qword [rdi - 8]
mov edx, 1
call fcn.140020450
jmp 0x14013a2e3
cmp qword [rbx + 0x108], 0
mov rdi, qword [rsp + 0x38]
mov r15, qword [rsp + 0xe8]
je 0x14013a326
mov edx, 8
mov rcx, r13
call fcn.140020450
mov rax, qword [rsp + 0x100]
mov qword [r15 + 0x10], rax
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [r15], xmm0
lea rbx, [rsi + 0xb8]
test r12b, r12b
je 0x14013a491
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x238], rax
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x228], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x218], xmm0
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x208], xmm0
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movups xmm2, xmmword [rsp + 0x90]
movups xmm3, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x1f8], xmm3
movups xmmword [rsp + 0x1e8], xmm2
movups xmmword [rsp + 0x1d8], xmm1
movups xmmword [rsp + 0x1c8], xmm0
lea rcx, [rsp + 0x130]
mov r8d, 0x90
mov rdx, qword [rsp + 0x48]
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movaps xmmword [rsp + 0x330], xmm0
movaps xmmword [rsp + 0x340], xmm1
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x350], rax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x120], xmm1
lea rcx, [rsp + 0x240]
mov r8d, 0xf0
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x1c0], rdi
mov byte [rsp + 0x358], bpl
mov byte [rsp + 0x359], 1
movzx eax, byte [0x1402e91f8]
mov ecx, 0x250
mov edx, 8
call fcn.1400203c0
test rax, rax
je 0x14013a6cc
mov rbx, rax
lea rdx, [rsp + 0x110]
mov r8d, 0x250
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea rax, fcn.140143680
jmp 0x14013a5db
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x238], rax
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x228], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x218], xmm0
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x208], xmm0
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movups xmm2, xmmword [rsp + 0x90]
movups xmm3, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x1f8], xmm3
movups xmmword [rsp + 0x1e8], xmm2
movups xmmword [rsp + 0x1d8], xmm1
movups xmmword [rsp + 0x1c8], xmm0
lea rcx, [rsp + 0x130]
mov r8d, 0x90
mov rdx, qword [rsp + 0x48]
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movaps xmmword [rsp + 0x330], xmm0
movaps xmmword [rsp + 0x340], xmm1
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x350], rax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x120], xmm1
lea rcx, [rsp + 0x240]
mov r8d, 0xf0
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x1c0], rdi
mov byte [rsp + 0x378], bpl
mov qword [rsp + 0x358], 0
mov byte [rsp + 0x379], 1
movzx eax, byte [0x1402e91f8]
mov ecx, 0x270
mov edx, 8
call fcn.1400203c0
test rax, rax
je 0x14013a6dd
mov rbx, rax
lea rdx, [rsp + 0x110]
mov r8d, 0x270
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea rax, fcn.1401435a0
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 8], rbx
mov qword [rcx + 0x10], rax
mov byte [rcx], 0x14
mov bl, 1
mov rdi, qword [rsp + 0x50]
test rdi, rdi
je 0x14013a644
mov r14, qword [rsp + 0x60]
test r14, r14
je 0x14013a62f
lea r15, [rdi + 8]
jmp 0x14013a619
add r15, 0x18
dec r14
je 0x14013a62f
cmp qword [r15], 0
je 0x14013a610
mov rcx, qword [r15 - 8]
mov edx, 1
call fcn.140020450
jmp 0x14013a610
cmp qword [rsp + 0x58], 0
je 0x14013a644
mov edx, 8
mov rcx, rdi
call fcn.140020450
test bl, bl
je 0x140139d8e
jmp 0x14013a132
lea rcx, [rsp + 0x110]
call fcn.14013ea20
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x50], xmm0
jmp 0x140139f7b
lea r8, [0x140247ee0]
mov ecx, 0x20
mov edx, 0x20
call fcn.140024f00
jmp 0x14013a6ec
lea r8, [0x140247ec8]
mov ecx, 0x20
call fcn.14002bbe0
jmp 0x14013a6ec
mov ecx, 8
mov edx, 0x238
call fcn.1400206c0
jmp 0x14013a6ec
lea r8, [0x140248d98]
mov ecx, 0x30
call fcn.14002bbe0
jmp 0x14013a6ec
mov ecx, 8
mov edx, 0x250
call fcn.1400206c0
jmp 0x14013a6ec
mov ecx, 8
mov edx, 0x270
call fcn.1400206c0
ud2