Function at 0x14011fee0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov r13, qword [rsp + 0x330]
movzx eax, byte [rsp + 0x338]
movabs r15, 0x8000000000000000
movdqu xmm0, xmmword [r13 + 0x18]
movdqu xmm1, xmmword [r13 + 0x28]
movdqu xmmword [rdx + 0x120], xmm1
movdqu xmmword [rdx + 0x110], xmm0
test al, al
je 0x14011ffa6
movabs rax, 0x14452474e574f44
cmp qword [rdi + 0x128], rax
jne 0x14011ffa6
mov word [rsp + 0x298], 4
lea rax, [r15 + 1]
mov qword [rsp + 0x1e0], rax
mov dword [rsp + 0x1e8], 0xd0001
cmp byte [rbx + 0x41], 2
sete r8b
lea rdx, [rsp + 0x1e0]
mov rcx, rbx
call fcn.140105170
mov byte [rbx + 0x301], 1
mov word [rsi], 9
mov r14, qword [rdi + 0xe8]
xor esi, esi
lock dec qword [r14]
je 0x14012011a
jmp 0x140120126
mov rax, qword [r13 + 8]
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x1401200ab
lea rdx, [rcx*8]
lea rdx, [rdx + rdx*4]
xor r8d, r8d
mov r10d, 0x3f7f
jmp 0x14011ffdd
add r8, 0x28
cmp rdx, r8
je 0x1401200ab
movzx r11d, word [rax + r8]
bt r10d, r11d
jb 0x14011ffd0
cmp r11d, 0xe
jne 0x14011fff7
cmp word [rax + r8 + 0x20], 0x13
jne 0x14011ffd0
lea r15, [rdi + 0x130]
mov byte [rdi + 0x130], 1
lea rdx, [rdi + 0xe8]
mov qword [rsp + 0x40], rdx
mov r14, qword [rdi + 0xe8]
mov r11b, 1
test rcx, rcx
mov dword [rsp + 0x3c], r11d
mov qword [rsp + 0xd0], r15
jne 0x14012020e
xor ebp, ebp
xor r12d, r12d
mov qword [rsp + 0x48], r9
lea r15, [rdi + 0xf0]
movabs rax, 0x8000000000000000
cmp qword [rdi], rax
je 0x1401203c8
lea rcx, [rsp + 0x150]
mov r8d, 0x90
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1d0]
cmp rax, qword [r13 + 0x58]
jne 0x1401203a4
lea r10, [r13 + 0x38]
test rax, rax
je 0x1401204f5
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x140120a50
cmp rax, 8
jae 0x140120292
xor edx, edx
xor ecx, ecx
jmp 0x140120380
mov byte [rdi + 0x130], 0
mov r14, qword [rdi + 0xe8]
cmp byte [r14 + 0x163], 0
je 0x1401201e2
mov word [rsp + 0x298], 4
lea rax, [r15 + 1]
mov qword [rsp + 0x1e0], rax
mov dword [rsp + 0x1e8], 0x60001
cmp byte [rbx + 0x41], 2
sete r8b
lea rdx, [rsp + 0x1e0]
mov rcx, rbx
call fcn.140105170
mov byte [rbx + 0x301], 1
mov byte [rsi], 8
lea rax, [r15 + 2]
mov qword [rsi + 8], rax
xor esi, esi
lock dec qword [r14]
jne 0x140120126
lea rcx, [rdi + 0xe8]
call fcn.140116760
cmp qword [rdi], r15
sete al
or sil, al
je 0x14012013c
cmp byte [rdi + 0xc8], 0
jne 0x140120171
jmp 0x14012014d
mov rcx, rdi
call fcn.14010f450
cmp byte [rdi + 0xc8], 0
jne 0x140120171
mov rax, qword [rdi + 0xd0]
shl rax, 1
test rax, rax
je 0x140120171
mov r8, qword [rdi + 0xd8]
mov rcx, qword [0x140279280]
xor edx, edx
call fcn.1401abdbc
mov rsi, qword [rdi + 0xb8]
mov rbx, qword [rdi + 0xc0]
mov rcx, rsi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x1401201a7
cmp qword [rbx + 0x10], 0x11
jb 0x140120196
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, rsi
call fcn.1401abdbc
mov rax, qword [rdi + 0x90]
shl rax, 1
test rax, rax
je 0x1401204e1
mov r8, qword [rdi + 0x98]
mov rcx, qword [0x140279280]
xor edx, edx
add rsp, 0x2c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401abdbc
lea r15, [rdi + 0x130]
lea rdx, [rdi + 0xe8]
mov qword [rsp + 0x40], rdx
xor r11d, r11d
test rcx, rcx
mov dword [rsp + 0x3c], r11d
mov qword [rsp + 0xd0], r15
je 0x140120031
shl rcx, 3
lea rcx, [rcx + rcx*4]
xor edx, edx
jmp 0x140120229
add rdx, 0x28
cmp rcx, rdx
je 0x140120251
movzx r8d, word [rax + rdx]
lea r10d, [r8 - 3]
cmp r10d, 0xb
jb 0x140120220
cmp r8d, 2
jb 0x140120220
mov bpl, 1
cmp r8d, 0xe
jne 0x140120253
cmp word [rax + rdx + 0x20], 0x15
jne 0x140120220
jmp 0x140120253
xor ebp, ebp
xor edx, edx
mov r8d, 0x3eff
jmp 0x14012026d
add rdx, 0x28
cmp rcx, rdx
je 0x140120033
movzx r10d, word [rax + rdx]
mov r12b, 1
bt r8d, r10d
jb 0x140120260
cmp r10d, 0xe
jne 0x140120036
cmp word [rax + rdx + 0x20], 5
jne 0x140120260
jmp 0x140120036
cmp rax, 0x10
jae 0x140120303
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov ecx, eax
and ecx, 0x38
movzx edx, dl
movd xmm0, edx
nop dword [rax + rax]
mov rdx, qword [r10 + r8]
xor rdx, qword [rsp + r8 + 0x1b0]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x1401202b0
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rax, rcx
jne 0x140120380
jmp 0x14012039c
mov ecx, eax
and ecx, 0x30
movdqu xmm1, xmmword [rsp + 0x1b0]
movdqu xmm0, xmmword [r13 + 0x38]
pxor xmm0, xmm1
pxor xmm1, xmm1
cmp rcx, 0x10
je 0x140120338
movdqu xmm2, xmmword [rsp + 0x1c0]
movdqu xmm1, xmmword [r13 + 0x48]
pxor xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
por xmm0, xmm1
movd edx, xmm0
cmp rax, rcx
je 0x14012039c
test al, 8
jne 0x14012029c
nop dword [rax]
movzx r8d, byte [r10 + rcx]
xor r8b, byte [rsp + rcx + 0x1b0]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x140120380
test dl, dl
je 0x1401204f5
lea rcx, [rsp + 0x150]
call fcn.14010f450
mov rax, qword [rsp + 0x40]
mov r14, qword [rax]
mov rax, qword [rsp + 0xd0]
movzx eax, byte [rax]
mov dword [rsp + 0x3c], eax
mov byte [rbx + 0x306], 0
movzx eax, byte [0x1402792e0]
mov edx, 0x168
xor ecx, ecx
call fcn.1401685e0
test rax, rax
je 0x140120a66
movabs rcx, 0x8000000000000000
mov qword [rax], rcx
movups xmm0, xmmword [rdi + 0x90]
movups xmm1, xmmword [rdi + 0xa0]
movups xmm2, xmmword [rdi + 0xb0]
movups xmmword [rax + 0x90], xmm0
movups xmmword [rax + 0xa0], xmm1
movups xmmword [rax + 0xb0], xmm2
mov rcx, qword [rdi + 0xc0]
mov qword [rax + 0xc0], rcx
movups xmm0, xmmword [rdi + 0xc8]
movups xmm1, xmmword [rdi + 0xd8]
movups xmmword [rax + 0xc8], xmm0
movups xmmword [rax + 0xd8], xmm1
mov qword [rax + 0xe8], r14
mov rcx, qword [rsp + 0x48]
mov qword [rax + 0xf0], rcx
movups xmm0, xmmword [r13 + 0x38]
movups xmm1, xmmword [r13 + 0x48]
movups xmmword [rax + 0xf8], xmm0
movups xmmword [rax + 0x108], xmm1
mov rcx, qword [r13 + 0x58]
mov qword [rax + 0x118], rcx
movdqu xmm0, xmmword [r15]
movdqu xmm1, xmmword [r15 + 0x10]
movdqu xmm2, xmmword [r15 + 0x20]
movups xmm3, xmmword [r15 + 0x30]
movdqu xmmword [rax + 0x120], xmm0
movdqu xmmword [rax + 0x130], xmm1
movdqu xmmword [rax + 0x140], xmm2
movups xmmword [rax + 0x150], xmm3
mov ecx, dword [rsp + 0x3c]
mov byte [rax + 0x160], cl
mov byte [rax + 0x161], r12b
mov byte [rax + 0x162], bpl
mov qword [rsi + 8], rax
lea rax, fcn.140133690
mov qword [rsi + 0x10], rax
mov byte [rsi], 0x15
add rsp, 0x2c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x1a8]
movzx r8d, word [rdx + 0x48]
mov cl, 0x2c
mov rax, qword [rsp + 0x48]
cmp r8w, word [rax + 0x48]
jne 0x14012053c
movzx r8d, r8w
cmp r8d, 0x178
jne 0x140120527
movzx edx, word [rdx + 0x4a]
cmp dx, word [rax + 0x4a]
jne 0x14012053c
cmp byte [rsp + 0x1d8], 0
setne cl
mov edx, dword [rsp + 0x3c]
xor dl, cl
mov cl, 0x2d
je 0x14012056b
mov byte [rsi], 9
mov byte [rsi + 1], cl
lea rcx, [rsp + 0x150]
call fcn.14010f450
mov sil, 1
movabs r15, 0x8000000000000000
lock dec qword [r14]
je 0x14012011a
jmp 0x140120126
mov rdx, qword [rsp + 0x178]
cmp rdx, 0x30
jne 0x140120a75
mov r13, r10
mov rcx, qword [rsp + 0x170]
mov qword [rsp + 0xd8], rax
lea r9, [rsp + 0xe0]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmm3, xmmword [r15 + 0x30]
movups xmmword [rsp + 0x110], xmm3
movups xmmword [rsp + 0x100], xmm2
movups xmmword [rsp + 0xf0], xmm1
movups xmmword [rsp + 0xe0], xmm0
lea rax, [rsp + 0x120]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [rsp + 0x120], xmm0
movups xmmword [rsp + 0x130], xmm1
movups xmmword [rsp + 0x140], xmm2
mov rcx, qword [r14 + 0x110]
mov r10, qword [r14 + 0x118]
mov rdx, qword [r10 + 0x10]
dec rdx
and rdx, 0xfffffffffffffff0
add rcx, rdx
add rcx, 0x10
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, str.CLIENT_RANDOM
mov r8d, 0xd
call qword [r10 + 0x30]
lea rdx, [rsp + 0xd8]
mov rcx, rbx
call fcn.140130820
mov rdx, qword [rsp + 0x188]
mov r8, qword [rsp + 0x190]
lea r14, [rsp + 0x1e0]
mov rcx, r14
call fcn.140110380
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.1400f8e20
lea rcx, [rbx + 0x2c0]
call fcn.1400f9000
mov rax, qword [rsp + 0x60]
mov qword [rbx + 0x2d0], rax
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x2c0], xmm0
mov byte [rbx + 0x306], 2
lea r15, [rdi + 0x90]
lea r14, [rdi + 0xc8]
test bpl, bpl
je 0x14012087d
mov r12, qword [rdi + 0xe8]
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rsp + 0x128]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0xd8]
movups xmm1, xmmword [rsp + 0xe8]
movups xmm2, xmmword [rsp + 0xf8]
movups xmm3, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rbx, [rsp + 0x1e0]
mov r8d, 0x90
mov rcx, rbx
mov rdx, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rsp + 0x2a8], xmm0
movups xmmword [rsp + 0x2b8], xmm1
movzx ebp, byte [rdi + 0x130]
mov rax, qword [r15 + 0x30]
mov qword [rsp + 0x2a0], rax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmmword [rsp + 0x290], xmm2
movups xmmword [rsp + 0x280], xmm1
movups xmmword [rsp + 0x270], xmm0
mov ecx, 0x198
call fcn.14007bea0
mov rdi, rax
mov r8d, 0xe8
mov rcx, rax
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rdi + 0xe8], r12
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movdqa xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movups xmmword [rdi + 0xf0], xmm0
movups xmmword [rdi + 0x100], xmm1
movdqu xmmword [rdi + 0x110], xmm2
movups xmmword [rdi + 0x120], xmm3
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x130], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rdi + 0x140], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rdi + 0x150], xmm0
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x160], rax
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmmword [rdi + 0x178], xmm1
movdqu xmmword [rdi + 0x168], xmm0
mov rax, qword [r13 + 0x20]
mov qword [rdi + 0x188], rax
mov byte [rdi + 0x190], bpl
mov byte [rdi + 0x191], 1
lea rax, fcn.140133160
jmp 0x140120a47
mov r12, qword [rdi + 0xe8]
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rsp + 0x128]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0xd8]
movups xmm1, xmmword [rsp + 0xe8]
movups xmm2, xmmword [rsp + 0xf8]
movups xmm3, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rbx, [rsp + 0x1e0]
mov r8d, 0x90
mov rcx, rbx
mov rdx, rdi
call sub.msvcrt.dll_memcpy
movzx ebp, byte [rdi + 0x130]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmmword [rsp + 0x270], xmm0
movups xmmword [rsp + 0x280], xmm1
movups xmmword [rsp + 0x290], xmm2
mov rax, qword [r15 + 0x30]
mov qword [rsp + 0x2a0], rax
mov ecx, 0x1b8
call fcn.14007bea0
mov rdi, rax
mov r8d, 0xc8
mov rcx, rax
mov rdx, rbx
call sub.msvcrt.dll_memcpy
movabs rax, 0x8000000000000000
mov qword [rdi + 0xc8], rax
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rdi + 0xe8], xmm0
movups xmmword [rdi + 0xf8], xmm1
mov qword [rdi + 0x108], r12
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x180], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rdi + 0x170], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rdi + 0x160], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x150], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movdqa xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x140], xmm3
movdqu xmmword [rdi + 0x130], xmm2
movups xmmword [rdi + 0x120], xmm1
movups xmmword [rdi + 0x110], xmm0
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmmword [rdi + 0x188], xmm0
movdqu xmmword [rdi + 0x198], xmm1
mov rax, qword [r13 + 0x20]
mov qword [rdi + 0x1a8], rax
mov byte [rdi + 0x1b0], bpl
mov byte [rdi + 0x1b1], 1
lea rax, fcn.140130c30
mov qword [rsi + 8], rdi
jmp 0x1401204da
lea r8, [0x1401ff930]
mov ecx, 0x20
mov edx, 0x20
call fcn.140046290
mov ecx, 8
mov edx, 0x168
call fcn.140041910
lea r8, [0x140202310]
mov ecx, 0x30
call fcn.14004bb40
int3