Function at 0x180070630
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
cmp r9d, 0x10
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov ebp, edx
mov rdi, r8
mov esi, r9d
mov rbx, rcx
je 0x18007091b
cmp r9d, 0x20
je 0x18007091b
cmp r9d, 0x20
jae 0x1800708e9
lea rcx, [rsp + 0x30]
mov r8d, r9d
mov rdx, rdi
mov qword [rsp + 0x50], r12
call fcn.180077c40
test ebp, ebp
jne 0x1800707d1
mov rax, rdi
lea ecx, [rbp + 1]
mov rdx, rbx
shr rax, 0x20
mov word [rbx + 0x18], 0x13f
mov dword [rbx + 0x12], edi
mov word [rbx + 0x16], 2
mov byte [rbx + 0x55], bpl
mov word [rbx + 0x3e], bp
mov dword [rbx + 0x5c], eax
call fcn.180075300
mov byte [rbx + 0x55], bpl
movzx ecx, ax
mov word [rbx + 0x16], bp
call fcn.180079d00
test eax, eax
mov ebp, eax
je 0x180070700
lea rdx, [rsp + 0x30]
mov r8d, esi
mov rcx, rdi
call fcn.180077c40
mov eax, ebp
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
add rsp, 0x58
ret
lea rcx, [rsp + 0x20]
mov r8d, setsockopt
mov rdx, rdi
call fcn.180077c40
mov ebp, esi
and ebp, 0xf
jbe 0x180070742
lea rdx, [rsp + 0x20]
lea r8, [rdi + 0x10]
mov r9d, ebp
nop
nop
nop
movzx eax, byte [r8]
inc rdx
inc r8
xor byte [rdx - 1], al
dec r9
jne 0x180070730
lea rax, [rsp + 0x20]
mov rdx, rbx
mov ecx, 1
mov dword [rbx + 0x12], eax
lea rax, [rsp + 0x20]
mov word [rbx + 0x18], 0x13f
shr rax, 0x20
mov word [rbx + 0x16], 2
mov byte [rbx + 0x55], 0
mov dword [rbx + 0x5c], eax
mov word [rbx + 0x3e], 0
call fcn.180075300
movzx ecx, ax
mov byte [rbx + 0x55], 0
mov word [rbx + 0x16], 0
call fcn.180079d00
test eax, eax
mov ebx, eax
je 0x1800707a8
lea rdx, [rsp + 0x30]
mov r8d, esi
mov rcx, rdi
call fcn.180077c40
mov eax, ebx
jmp 0x1800706e2
lea rcx, [rdi + 0x10]
mov r8d, ebp
mov rdx, rdi
call fcn.180077c40
lea rdx, [rsp + 0x20]
mov r8d, setsockopt
mov rcx, rdi
call fcn.180077c40
xor eax, eax
jmp 0x1800706e2
mov rax, rdi
mov rdx, rbx
mov ecx, 1
shr rax, 0x20
mov word [rbx + 0x18], 0x140
mov dword [rbx + 0x12], edi
mov word [rbx + 0x16], 2
mov byte [rbx + 0x55], 0
mov word [rbx + 0x3e], 0
mov dword [rbx + 0x5c], eax
call fcn.180075300
mov byte [rbx + 0x55], 0
movzx ecx, ax
mov word [rbx + 0x16], 0
call fcn.180079d00
test eax, eax
mov ebp, eax
jne 0x1800706d0
mov ebp, esi
and ebp, 0xf
jbe 0x18007083f
mov rcx, rdi
mov edx, ebp
nop
nop
movzx eax, byte [rcx + 0x10]
inc rcx
xor byte [rcx - 1], al
dec rdx
jne 0x180070830
lea rdx, [rdi + 0x10]
lea rcx, [rsp + 0x20]
mov r8d, ebp
call fcn.180077c40
mov r11d, esi
mov r8d, setsockopt
and r11d, 0xf
sub r8d, ebp
lea rdx, [r11 + rdi]
lea rcx, [rsp + r11 + 0x20]
call fcn.180077c40
lea r11, [rsp + 0x20]
lea rax, [rsp + 0x20]
shr rax, 0x20
mov rdx, rbx
mov ecx, 1
mov word [rbx + 0x18], 0x140
mov dword [rbx + 0x12], r11d
mov word [rbx + 0x16], 2
mov dword [rbx + 0x5c], eax
mov byte [rbx + 0x55], 0
mov word [rbx + 0x3e], 0
call fcn.180075300
mov byte [rbx + 0x55], 0
mov word [rbx + 0x16], 0
movzx ecx, ax
call fcn.180079d00
test eax, eax
mov ebx, eax
jne 0x180070791
lea rcx, [rdi + 0x10]
mov r8d, ebp
mov rdx, rdi
call fcn.180077c40
lea r8d, [rbx + 0x10]
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.180077c40
xor eax, eax
jmp 0x1800706e2
test edx, edx
jne 0x180070904
lea r9, [0x18006ea80]
mov r8d, esi
mov rdx, rdi
call fcn.18006eb20
jmp 0x1800706e7
lea r9, [0x18006ea80]
mov r8d, esi
mov rdx, rdi
call fcn.18006f040
jmp 0x1800706e7
xor eax, eax
test edx, edx
mov dword [rcx + 0x12], r8d
setne al
mov byte [rcx + 0x55], 0
mov word [rcx + 0x3e], 0
add ax, 0x13f
mov rdx, rcx
shr rdi, 0x20
mov word [rcx + 0x18], ax
mov dword [rcx + 0x5c], edi
shr esi, 3
mov word [rcx + 0x16], si
mov ecx, 1
call fcn.180075300
mov byte [rbx + 0x55], 0
mov word [rbx + 0x16], 0
movzx ecx, ax
call fcn.180079d00
jmp 0x1800706e7