Function at 0x14000ece0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x1402bf7c0]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rcx
mov rsi, r8
mov rcx, r8
mov rdi, rdx
call fcn.140035170
test rbx, rbx
je 0x14000f257
test rdi, rdi
je 0x14000f257
mov rax, 0xffffffffffffffff
mov rcx, rax
inc rcx
cmp byte [rdi + rcx], 0
jne 0x14000ed24
cmp rcx, 8
jb 0x14000f257
inc rax
cmp byte [rbx + rax], 0
jne 0x14000ed37
cmp rax, 9
jb 0x14000f257
mov qword [rsp + 0x98], rbp
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x58], r12
mov r8d, reloc.WS2_32.dll_recv
mov qword [rsp + 0x50], r13
mov rdx, rdi
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
call fcn.140014580
movsx r11d, byte [rbx + 1]
movsx r9d, byte [rbx + 2]
mov eax, r11d
movsx r10d, byte [rbx + 5]
mov ecx, r11d
movsx r12d, byte [rbx]
mov r8d, r12d
mov byte [rsp + 0x30], 0
sub r8d, r11d
sub eax, r12d
cmovns r8d, eax
sub ecx, r9d
neg r8d
mov eax, r9d
sub eax, r11d
cmovns ecx, eax
mov eax, r8d
sub eax, ecx
test r8d, r8d
lea edx, [rcx + r8]
movsx r8d, byte [rbx + 3]
cmovns edx, eax
mov eax, r8d
sub eax, r9d
sub r9d, r8d
test eax, eax
cmovns r9d, eax
mov eax, edx
sub eax, r9d
test edx, edx
lea ecx, [r9 + rdx]
movsx r9d, byte [rbx + 4]
cmovns ecx, eax
mov eax, r9d
sub eax, r8d
sub r8d, r9d
test eax, eax
cmovns r8d, eax
mov eax, ecx
sub eax, r8d
test ecx, ecx
lea edx, [r8 + rcx]
movsx r8d, byte [rbx + 6]
cmovns edx, eax
mov eax, r10d
sub eax, r9d
sub r9d, r10d
test eax, eax
cmovns r9d, eax
mov eax, edx
sub eax, r9d
test edx, edx
lea ecx, [r9 + rdx]
cmovns ecx, eax
mov eax, r8d
sub eax, r10d
sub r10d, r8d
test eax, eax
cmovns r10d, eax
mov eax, ecx
sub eax, r10d
test ecx, ecx
lea edx, [r10 + rcx]
cmovns edx, eax
movsx eax, byte [rbx + 7]
mov ecx, eax
sub ecx, r8d
sub r8d, eax
test ecx, ecx
cmovns r8d, ecx
mov ecx, edx
sub ecx, r8d
lea eax, [r8 + rdx]
test edx, edx
movabs r9, 0x7fffffe03ff
cmovns eax, ecx
cdq
mov r8d, eax
xor r8d, edx
sub r8d, edx
lea edx, [r8 + 0x30]
lea eax, [rdx - 0x30]
cmp eax, 0x2a
ja 0x14000ee8e
movsxd rcx, eax
bt r9, rcx
jb 0x14000eebc
lea eax, [rdx - 0x61]
cmp eax, 0x19
jbe 0x14000eebc
mov edx, 0x7a
sub edx, r8d
lea eax, [rdx - 0x30]
cmp eax, 0x2a
ja 0x14000eeae
cdqe
bt r9, rax
jb 0x14000eebc
lea eax, [rdx - 0x61]
mov ecx, 0x78
cmp eax, 0x19
cmova edx, ecx
movsx ecx, byte [rbx + 7]
movsx eax, byte [rbx + 8]
movsx r10d, byte [rbx + 2]
xor eax, ecx
movsx ecx, byte [rbx + 6]
movsx r8d, byte [rsp + 0x20]
xor eax, ecx
movsx ecx, byte [rbx + 5]
xor eax, ecx
mov byte [rsp + 0x28], dl
movsx ecx, byte [rbx + 4]
xor eax, ecx
movsx ecx, byte [rbx + 3]
xor eax, ecx
movsx ecx, byte [rbx]
xor eax, ecx
xor eax, r10d
xor eax, r11d
cmp eax, 0x30
jge 0x14000ef01
lea eax, [r8 + 1]
movsx edx, byte [rsp + 0x21]
cmp eax, 0x7a
jle 0x14000ef0e
lea eax, [rdx + 1]
lea ecx, [rax - 0x30]
cmp ecx, 0x2a
ja 0x14000ef1f
movsxd rcx, ecx
bt r9, rcx
jb 0x14000ef2f
lea ecx, [rax - 0x61]
mov r9d, 0x52
cmp ecx, 0x19
cmova eax, r9d
movsx edi, byte [rsp + 0x22]
mov r11d, r8d
movsx ebp, byte [rsp + 0x23]
sub r8d, edx
movsx r14d, byte [rsp + 0x24]
mov ecx, edx
movsx r15d, byte [rsp + 0x25]
mov r13d, edx
movsx r9d, byte [rsp + 0x26]
mov byte [rsp + 0x29], al
mov eax, edx
sub eax, r11d
cmovns r8d, eax
sub ecx, edi
neg r8d
mov eax, edi
sub eax, edx
cmovns ecx, eax
mov eax, r8d
sub eax, ecx
test r8d, r8d
lea edx, [r8 + rcx]
mov ecx, edi
cmovns edx, eax
sub ecx, ebp
mov eax, ebp
sub eax, edi
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea r8d, [rcx + rdx]
mov ecx, ebp
cmovns r8d, eax
sub ecx, r14d
mov eax, r14d
sub eax, ebp
cmovns ecx, eax
mov eax, r8d
sub eax, ecx
test r8d, r8d
lea edx, [rcx + r8]
mov ecx, r14d
cmovns edx, eax
sub ecx, r15d
mov eax, r15d
sub eax, r14d
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea r8d, [rcx + rdx]
mov ecx, r15d
cmovns r8d, eax
sub ecx, r9d
mov eax, r9d
sub eax, r15d
cmovns ecx, eax
mov eax, r8d
sub eax, ecx
test r8d, r8d
lea edx, [rcx + r8]
movsx r8d, byte [rsp + 0x27]
cmovns edx, eax
mov ecx, r9d
sub ecx, r8d
mov eax, r8d
sub eax, r9d
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea r8d, [rcx + rdx]
cmovns r8d, eax
mov eax, r10d
sub eax, r12d
sub r12d, r10d
test eax, eax
cmovns r12d, eax
mov eax, r8d
sub eax, r12d
movsx ecx, byte [rbx + 1]
lea r9d, [r12 + r8]
test r8d, r8d
movsx r8d, byte [rbx + 3]
cmovns r9d, eax
mov eax, r8d
sub eax, ecx
sub ecx, r8d
test eax, eax
cmovns ecx, eax
mov eax, r9d
sub eax, ecx
test r9d, r9d
lea edx, [rcx + r9]
movsx r9d, byte [rbx + 4]
cmovns edx, eax
mov eax, r9d
sub eax, r10d
sub r10d, r9d
test eax, eax
cmovns r10d, eax
mov eax, edx
sub eax, r10d
test edx, edx
lea ecx, [r10 + rdx]
movsx r10d, byte [rbx + 5]
cmovns ecx, eax
mov eax, r10d
sub eax, r8d
sub r8d, r10d
test eax, eax
cmovns r8d, eax
mov eax, ecx
sub eax, r8d
test ecx, ecx
lea edx, [r8 + rcx]
movsx r8d, byte [rbx + 6]
cmovns edx, eax
mov eax, r8d
sub eax, r9d
sub r9d, r8d
test eax, eax
cmovns r9d, eax
mov eax, edx
sub eax, r9d
test edx, edx
lea ecx, [r9 + rdx]
movsx r9d, byte [rbx + 7]
cmovns ecx, eax
mov eax, r9d
sub eax, r10d
sub r10d, r9d
test eax, eax
cmovns r10d, eax
mov eax, ecx
sub eax, r10d
test ecx, ecx
lea edx, [r10 + rcx]
cmovns edx, eax
movsx eax, byte [rbx + 8]
mov ecx, eax
sub ecx, r8d
sub r8d, eax
test ecx, ecx
mov eax, edx
cmovns r8d, ecx
sub eax, r8d
add r8d, edx
test edx, edx
cmovns r8d, eax
movsx eax, byte [rbx + 9]
mov ecx, eax
sub ecx, r9d
sub r9d, eax
test ecx, ecx
cmovns r9d, ecx
mov ecx, r8d
sub ecx, r9d
test r8d, r8d
lea eax, [r9 + r8]
cmovns eax, ecx
mov r12, qword [rsp + 0x58]
cdq
mov r8d, eax
movabs r9, 0x7fffffe03ff
xor r8d, edx
sub r8d, edx
lea edx, [r8 + 0x30]
lea eax, [rdx - 0x30]
cmp eax, 0x2a
ja 0x14000f14e
movsxd rcx, eax
bt r9, rcx
jb 0x14000f17c
lea eax, [rdx - 0x61]
cmp eax, 0x19
jbe 0x14000f17c
mov edx, 0x7a
sub edx, r8d
lea eax, [rdx - 0x30]
cmp eax, 0x2a
ja 0x14000f16e
cdqe
bt r9, rax
jb 0x14000f17c
lea eax, [rdx - 0x61]
mov ecx, WSAGetLastError
cmp eax, 0x19
cmova edx, ecx
mov byte [rsp + 0x2a], dl
xor edx, edx
mov ecx, edx
nop dword [rax]
nop dword [rax + rax]
movsx eax, byte [rcx + rbx]
add rcx, 2
xor edx, eax
cmp rcx, 0xa
jl 0x14000f190
movsx eax, byte [rsp + 0x26]
lea ecx, [rdi - 0xa]
xor r11d, r13d
mov r13, qword [rsp + 0x50]
xor r11d, r15d
xor r11d, ebp
xor r11d, r14d
xor r11d, eax
movsx eax, byte [rsp + 0x27]
xor r11d, eax
lea eax, [r15 + 0x14]
mov r15, qword [rsp + 0x40]
xor r11d, edi
xor edx, r11d
cmp edx, 0x30
cmovge eax, edx
cmp eax, 0x7a
cmovle ecx, eax
lea eax, [rbp + 0x14]
mov rbp, qword [rsp + 0x98]
cmp ecx, 0x30
cmovge eax, ecx
lea ecx, [r14 - 0xa]
mov r14, qword [rsp + 0x48]
cmp eax, 0x7a
cmovle ecx, eax
cmp ecx, 0x30
jl 0x14000f20b
mov eax, ecx
cmp ecx, 0x39
jle 0x14000f228
cmp ecx, 0x61
jl 0x14000f217
mov eax, ecx
cmp ecx, 0x7a
jle 0x14000f228
cmp ecx, 0x41
jl 0x14000f223
mov eax, ecx
cmp ecx, 0x5a
jle 0x14000f228
mov eax, 0x47
mov rdx, rbx
mov byte [rsp + 0x2b], al
mov rcx, rsi
mov byte [rsp + 0x2c], 0
call fcn.140032c60
mov dl, 0x5f
mov rcx, rsi
call fcn.140033080
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140032c60
mov al, 1
jmp 0x14000f259
xor al, al
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1401da8c0
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret