Function at 0x140112c70
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x14040f040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rcx
mov rsi, r8
mov rcx, r8
mov rdi, rdx
call fcn.14013bd70
test rbx, rbx
je 0x1401131b4
test rdi, rdi
je 0x1401131b4
mov rax, 0xffffffffffffffff
mov rcx, rax
inc rcx
cmp byte [rdi + rcx], 0
jne 0x140112cb4
cmp rcx, 8
jb 0x1401131b4
inc rax
cmp byte [rbx + rax], 0
jne 0x140112cc7
cmp rax, 9
jb 0x1401131b4
mov r8d, reloc.WS2_32.dll_recv
mov qword [rsp + 0x78], r15
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.14011abd0
movsx r11d, byte [rbx + 1]
movsx r9d, byte [rbx + 2]
mov eax, r11d
movsx r10d, byte [rbx + 5]
mov ecx, r11d
movsx r8d, byte [rbx]
sub eax, r8d
mov byte [rsp + 0x30], 0
sub r8d, r11d
test eax, eax
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
mov eax, edx
cmovns r8d, ecx
sub eax, r8d
test edx, edx
lea ecx, [r8 + rdx]
cmovns ecx, eax
mov edx, ecx
neg edx
movabs r15, 0x7fffffe03ff
cmovs edx, ecx
lea ecx, [rdx + 0x30]
lea eax, [rcx - 0x30]
cmp eax, 0x2a
ja 0x140112e01
cdqe
bt r15, rax
jb 0x140112e2e
lea eax, [rcx - 0x61]
cmp eax, 0x19
jbe 0x140112e2e
mov ecx, 0x7a
sub ecx, edx
lea eax, [rcx - 0x30]
cmp eax, 0x2a
ja 0x140112e20
cdqe
bt r15, rax
jb 0x140112e2e
lea eax, [rcx - 0x61]
mov edx, 0x78
cmp eax, 0x19
cmova ecx, edx
movsx eax, byte [rbx + 8]
movsx edx, byte [rsp + 0x20]
mov byte [rsp + 0x28], cl
movsx ecx, byte [rbx + 7]
xor eax, ecx
movsx ecx, byte [rbx + 6]
xor eax, ecx
movsx ecx, byte [rbx + 5]
xor eax, ecx
movsx ecx, byte [rbx + 4]
xor eax, ecx
movsx ecx, byte [rbx + 3]
xor eax, ecx
movsx ecx, byte [rbx + 2]
xor eax, ecx
movsx ecx, byte [rbx]
xor eax, ecx
xor eax, r11d
cmp eax, 0x30
jge 0x140112e6f
lea eax, [rdx + 1]
movsx r8d, byte [rsp + 0x21]
cmp eax, 0x7a
jle 0x140112e7e
lea eax, [r8 + 1]
lea ecx, [rax - 0x30]
cmp ecx, 0x2a
ja 0x140112e8f
movsxd rcx, ecx
bt r15, rcx
jb 0x140112e9f
lea ecx, [rax - 0x61]
mov r9d, 0x52
cmp ecx, 0x19
cmova eax, r9d
movsx edi, byte [rsp + 0x22]
mov ecx, r8d
movsx r9d, byte [rsp + 0x23]
movsx r11d, byte [rsp + 0x25]
movsx r10d, byte [rbx + 2]
mov byte [rsp + 0x29], al
mov eax, r8d
sub eax, edx
sub edx, r8d
test eax, eax
mov r8d, edi
cmovns edx, eax
mov eax, edi
sub eax, ecx
neg edx
sub ecx, edi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
add ecx, edx
test edx, edx
cmovns ecx, eax
sub r8d, r9d
mov eax, r9d
sub eax, edi
cmovns r8d, eax
mov eax, ecx
sub eax, r8d
test ecx, ecx
lea edx, [r8 + rcx]
movsx ecx, byte [rsp + 0x24]
cmovns edx, eax
mov eax, ecx
sub eax, r9d
sub r9d, ecx
test eax, eax
cmovns r9d, eax
mov eax, edx
sub eax, r9d
test edx, edx
lea r8d, [rdx + r9]
mov edx, r11d
cmovns r8d, eax
mov eax, r11d
sub eax, ecx
sub ecx, r11d
test eax, eax
cmovns ecx, eax
mov eax, r8d
sub eax, ecx
add ecx, r8d
test r8d, r8d
movsx r8d, byte [rsp + 0x26]
cmovns ecx, eax
sub edx, r8d
mov eax, r8d
sub eax, r11d
cmovns edx, eax
mov eax, ecx
sub eax, edx
add edx, ecx
test ecx, ecx
cmovns edx, eax
movsx eax, byte [rsp + 0x27]
mov ecx, eax
sub ecx, r8d
sub r8d, eax
test ecx, ecx
mov eax, edx
cmovns r8d, ecx
movsx ecx, byte [rbx]
sub eax, r8d
add r8d, edx
test edx, edx
cmovns r8d, eax
mov eax, r10d
sub eax, ecx
sub ecx, r10d
test eax, eax
cmovns ecx, eax
lea r9d, [rcx + r8]
mov eax, r8d
sub eax, ecx
movsx ecx, byte [rbx + 1]
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
mov eax, r8d
cmovns r9d, ecx
sub eax, r9d
lea ecx, [r9 + r8]
test r8d, r8d
cmovns ecx, eax
mov edx, ecx
neg edx
cmovs edx, ecx
lea ecx, [rdx + 0x30]
lea eax, [rcx - 0x30]
cmp eax, 0x2a
ja 0x1401130a5
cdqe
bt r15, rax
jb 0x1401130d2
lea eax, [rcx - 0x61]
cmp eax, 0x19
jbe 0x1401130d2
mov ecx, 0x7a
sub ecx, edx
lea eax, [rcx - 0x30]
cmp eax, 0x2a
ja 0x1401130c4
cdqe
bt r15, rax
jb 0x1401130d2
lea eax, [rcx - 0x61]
mov edx, WSAGetLastError
cmp eax, 0x19
cmova ecx, edx
mov byte [rsp + 0x2a], cl
xor ecx, ecx
mov edx, ecx
nop word [rax + rax]
movsx eax, byte [rdx + rbx]
add rdx, 2
xor ecx, eax
cmp rdx, 0xa
jl 0x1401130e0
movd xmm0, dword [rsp + 0x20]
movd xmm1, dword [rsp + 0x24]
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
punpcklwd xmm1, xmm1
psrad xmm1, 0x18
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
xorps xmm1, xmm0
movd eax, xmm1
xor ecx, eax
cmp ecx, 0x30
jge 0x140113140
lea ecx, [r11 + 0x14]
cmp ecx, 0x7a
jle 0x140113148
lea ecx, [rdi - 0xa]
cmp ecx, 0x30
jge 0x140113155
movsx ecx, byte [rsp + 0x23]
add ecx, 0x14
cmp ecx, 0x7a
jle 0x140113162
movsx ecx, byte [rsp + 0x24]
sub ecx, 0xa
lea eax, [rcx - 0x30]
cmp eax, 0x2a
ja 0x140113172
cdqe
bt r15, rax
jb 0x140113180
lea eax, [rcx - 0x61]
mov edx, 0x47
cmp eax, 0x19
cmova ecx, edx
mov byte [rsp + 0x2b], cl
mov rdx, rbx
mov rcx, rsi
mov byte [rsp + 0x2c], 0
call fcn.1401394a0
mov dl, 0x5f
mov rcx, rsi
call fcn.1401398a0
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.1401394a0
mov r15, qword [rsp + 0x78]
mov al, 1
jmp 0x1401131b6
xor al, al
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140109210
add rsp, 0x40
pop rdi
pop rsi
pop rbx
ret