Function at 0x14005efc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r15
sub rsp, 0x48
mov rax, qword [0x1403c6da0]
xor rax, rsp
mov qword [rsp + 0x38], rax
cmp dword [rsp + 0xa8], 1
mov r15, qword [rsp + 0xa0]
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r15
mov rdi, r15
mov ebp, r8d
mov rbx, rdx
mov rsi, rcx
jne 0x14005f123
cmp ebp, 0x10
jb 0x14005f0a3
mov r12d, ebp
mov r15, r9
shr r12, 4
nop dword [rax + rax]
mov rdx, rbx
sub rdi, rsi
mov rcx, rsi
sub rdx, rsi
mov r8d, 4
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
add rcx, 4
xor al, byte [rcx - 4]
mov byte [rdx + rcx - 4], al
movzx eax, byte [rdi + rcx - 3]
xor al, byte [rcx - 3]
mov byte [rdx + rcx - 3], al
movzx eax, byte [rdi + rcx - 2]
xor al, byte [rcx - 2]
mov byte [rdx + rcx - 2], al
movzx eax, byte [rdi + rcx - 1]
xor al, byte [rcx - 1]
dec r8
mov byte [rdx + rcx - 1], al
jne 0x14005f040
mov r8, r15
mov rdx, rbx
mov rcx, rbx
call fcn.14005e440
mov rdi, rbx
add rbx, 0x10
add ebp, 0xfffffff0
add rsi, 0x10
dec r12
jne 0x14005f020
mov r15, qword [rsp + 0x28]
mov r9, qword [rsp + 0x20]
test ebp, ebp
je 0x14005f110
mov rdx, rdi
mov r8, rbx
mov ecx, ebp
sub rdx, rsi
sub r8, rsi
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
inc rsi
xor al, byte [rsi - 1]
dec rcx
mov byte [rsi + r8 - 1], al
jne 0x14005f0c0
movsxd rax, ebp
cmp ebp, 0x10
jae 0x14005f0ff
mov edx, reloc.WSOCK32.dll_recv
sub rdi, rbx
lea rcx, [rax + rbx]
sub edx, ebp
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
dec rdx
mov byte [rcx - 1], al
jne 0x14005f0f0
mov r8, r9
mov rdx, rbx
mov rcx, rbx
call fcn.14005e440
mov rdi, rbx
mov rax, qword [rdi]
mov qword [r15], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 8], rax
jmp 0x14005f316
cmp rcx, rdx
je 0x14005f209
cmp ebp, 0x10
jb 0x14005f1ad
mov r12, rbp
mov r15, r9
shr r12, 4
nop dword [rax + rax]
mov r8, r15
mov rdx, rbx
mov rcx, rsi
call fcn.14005ea10
mov r11, rbx
sub rdi, rbx
mov ecx, 4
nop dword [rax]
movzx eax, byte [rdi + r11]
add r11, 4
xor byte [r11 - 4], al
movzx eax, byte [rdi + r11 - 3]
xor byte [r11 - 3], al
movzx eax, byte [rdi + r11 - 2]
xor byte [r11 - 2], al
movzx eax, byte [rdi + r11 - 1]
xor byte [r11 - 1], al
dec rcx
jne 0x14005f160
mov rdi, rsi
add ebp, 0xfffffff0
add rbx, 0x10
add rsi, 0x10
dec r12
jne 0x14005f140
mov r15, qword [rsp + 0x28]
mov r9, qword [rsp + 0x20]
test ebp, ebp
je 0x14005f1f6
lea rdx, [rsp + 0x28]
mov r8, r9
mov rcx, rsi
call fcn.14005ea10
test ebp, ebp
je 0x14005f1f3
lea rax, [rsp + 0x28]
lea rcx, [rsp + 0x28]
mov edx, ebp
sub rdi, rax
lea rax, [rsp + 0x28]
sub rbx, rax
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
xor al, byte [rcx - 1]
dec rdx
mov byte [rbx + rcx - 1], al
jne 0x14005f1e0
mov rdi, rsi
mov rax, qword [rdi]
mov qword [r15], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 8], rax
jmp 0x14005f316
cmp ebp, 0x10
jb 0x14005f2a2
sub rdi, rdx
mov r12, rbp
mov qword [rsp + 0x80], r13
add rdi, 2
shr r12, 4
mov qword [rsp + 0x40], r14
nop dword [rax]
mov r13, qword [rsi]
mov r14, qword [rsi + 8]
mov r8, r9
mov rdx, rbx
mov rcx, rsi
call fcn.14005ea10
mov ecx, 4
nop word [rax + rax]
movzx eax, byte [rdi + rbx - 2]
add rbx, 4
xor byte [rbx - 4], al
movzx eax, byte [rdi + rbx - 5]
xor byte [rbx - 3], al
movzx eax, byte [rdi + rbx - 4]
xor byte [rbx - 2], al
movzx eax, byte [rdi + rbx - 3]
xor byte [rbx - 1], al
dec rcx
jne 0x14005f250
mov r9, qword [rsp + 0x20]
add ebp, 0xfffffff0
add rsi, 0x10
sub rdi, 0x10
dec r12
mov qword [r15], r13
mov qword [r15 + 8], r14
jne 0x14005f230
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x80]
test ebp, ebp
je 0x14005f316
mov rdi, qword [rsi]
mov rsi, qword [rsi + 8]
lea rcx, [rsp + 0x28]
mov r8, r9
mov rdx, rbx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
call fcn.14005ea10
test ebp, ebp
je 0x14005f2f0
mov r8, r15
mov rcx, rbx
mov edx, ebp
sub r8, rbx
nop word [rax + rax]
movzx eax, byte [rcx + r8]
inc rcx
xor byte [rcx - 1], al
dec rdx
jne 0x14005f2e0
movsxd rax, ebp
cmp ebp, 0x10
jae 0x14005f30f
mov r8d, reloc.WSOCK32.dll_recv
lea rcx, [rax + rbx]
lea rdx, [rsp + rax + 0x28]
sub r8d, ebp
call fcn.14025ccd0
mov qword [r15], rdi
mov qword [r15 + 8], rsi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14025db20
add rsp, 0x48
pop r15
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret