Function at 0x14003cc90
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x88
call fcn.1400035e0
sub rsp, rax
mov rax, qword [0x1401ad1c0]
mov qword [rsp + 0x40], rax
test rcx, rcx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x70], rsi
mov rsi, qword [rsp + 0xb0]
mov rbx, r8
mov rbp, rdx
mov r8, rcx
je 0x14003cf28
test rdx, rdx
je 0x14003cf28
cmp byte [rdx], 0
je 0x14003cf28
test rbx, rbx
je 0x14003cf21
test r9d, r9d
jle 0x14003cf21
mov qword [rsp + 0x60], r12
mov eax, r9d
cdq
mov r12d, eax
and edx, 0xf
add eax, edx
sar r12d, 4
and eax, 0xf
cmp eax, edx
je 0x14003cd1c
mov eax, 0xfffffff8
jmp 0x14003cd45
movzx ecx, byte [rcx + 0x14]
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x58], r13
dec ecx
je 0x14003ce8d
dec ecx
je 0x14003cd6e
mov eax, 0xfffffffb
mov rdi, qword [rsp + 0x68]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
call fcn.14006b6a0
add rsp, 0x88
ret
mov rax, qword [r8]
lea rcx, [rsp + 0x20]
lea edi, [r12 - 1]
test edi, edi
mov qword [rcx], rax
mov rax, qword [r8 + 8]
mov qword [rcx + 8], rax
jle 0x14003cdfc
nop
nop
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140055f80
mov eax, dword [rsp + 0x24]
mov r11d, dword [rsp + 0x20]
xor dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x28]
xor dword [rsp + 0x30], r11d
xor dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x2c]
lea rcx, [rsp + 0x20]
xor dword [rsp + 0x3c], eax
mov rax, qword [rbx]
dec edi
mov qword [rcx], rax
mov rax, qword [rbx + 8]
add rsi, 0x10
mov qword [rcx + 8], rax
lea rcx, [rsp + 0x30]
add rbx, 0x10
test edi, edi
mov rax, qword [rcx]
mov qword [rsi - 0x10], rax
mov rax, qword [rcx + 8]
mov qword [rsi - 8], rax
jg 0x14003cd90
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140055f80
mov ebx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x24]
xor ebx, dword [rsp + 0x2c]
xor dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x28]
xor dword [rsp + 0x38], eax
mov r11d, dword [rsp + 0x20]
mov dword [rsp + 0x3c], ebx
xor dword [rsp + 0x30], r11d
shr ebx, 0x18
lea eax, [rbx - 1]
cmp eax, 0xf
ja 0x14003ce83
mov edx, reloc.WSOCK32.dll_recv
sub edx, ebx
movsxd rcx, edx
cmp rcx, 0x10
jge 0x14003ce64
movzx eax, byte [rsp + rcx + 0x30]
cmp eax, ebx
jne 0x14003ce83
inc rcx
cmp rcx, 0x10
jl 0x14003ce52
movsxd r8, edx
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.MSVCR110.dll_memcpy
shl r12d, 4
sub r12d, ebx
mov eax, r12d
jmp 0x14003cd3b
mov eax, 0xfffffff8
jmp 0x14003cd3b
lea edi, [r12 - 1]
test edi, edi
jle 0x14003cec1
nop
nop
nop
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
mov rdx, rsi
mov rcx, rbx
call fcn.140055f80
dec edi
add rbx, 0x10
add rsi, 0x10
test edi, edi
jg 0x14003cea0
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140055f80
movzx ebx, byte [rsp + 0x3f]
cmp ebx, 0x10
jge 0x14003ce83
mov edx, reloc.WSOCK32.dll_recv
sub edx, ebx
movsxd rcx, edx
cmp rcx, 0x10
jge 0x14003cf02
movzx eax, byte [rsp + rcx + 0x30]
cmp eax, ebx
jne 0x14003ce83
inc rcx
cmp rcx, 0x10
jl 0x14003cef0
movsxd r8, edx
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.MSVCR110.dll_memcpy
shl r12d, 4
sub r12d, ebx
mov eax, r12d
jmp 0x14003cd3b
xor eax, eax
jmp 0x14003cd4a
mov eax, 0xfffffffb
jmp 0x14003cd4a