Function at 0x18010e710
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r8d, dword [rsp + 0xb0]
xor eax, eax
cmp dword [rcx], eax
mov ebp, recv
mov r15, qword [rsp + 0xa8]
mov r13, rcx
sete al
mov r10d, ebp
mov dword [rsp + 0x20], eax
lea eax, [r8 - 1]
movsxd r14, eax
mov r9, r14
test eax, eax
js 0x18010e788
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r9 + r15]
lea eax, [r10*8]
xor ecx, eax
xor r10d, ecx
sub r9, 1
jns 0x18010e770
movzx ecx, byte [rsp + 0xa0]
lea eax, [r10*8]
mov edi, dword [r13 + 0x14]
xor eax, ecx
xor eax, r10d
mov dword [rsp + 0x80], ecx
xor edx, edx
div edi
mov rax, qword [r13 + 0x20]
lea r12, [rdx*8]
mov esi, edx
mov qword [rsp + 0x28], rax
mov rbx, qword [rax + r12]
test rbx, rbx
je 0x18010e802
cmp byte [rbx + 0x30], cl
jne 0x18010e7fa
cmp dword [rbx + 0x1c], r8d
jne 0x18010e7fa
movsxd r8, r8d
lea rcx, [rbx + 0x31]
mov rdx, r15
call fcn.1801624a0
test eax, eax
je 0x18010e960
mov r8d, dword [rsp + 0xb0]
movzx ecx, byte [rsp + 0xa0]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18010e7c8
mov eax, 0x80
lea r12d, [r8 + 0x72]
cmp r12d, eax
cmovl r12d, eax
mov eax, dword [r13 + 0x10]
add eax, eax
cmp eax, edi
jl 0x18010eb9c
lea esi, [rdi + rdi]
lea ebx, [rsi*8]
call fcn.18014a870
test eax, eax
jne 0x18010e9dd
test ebx, ebx
jle 0x18010e9dd
movsxd rcx, ebx
call fcn.18011da50
mov rdi, rax
test rax, rax
je 0x18010e9dd
movsxd r8, esi
xor edx, edx
shl r8, 3
mov rcx, rax
call fcn.180162c50
xor ebx, ebx
cmp dword [r13 + 0x14], ebx
jle 0x18010e8f5
mov r11, qword [rsp + 0x28]
mov r10, qword [r11]
test r10, r10
je 0x18010e8e9
nop dword [rax]
mov rax, qword [r10]
mov r9d, ebp
mov qword [r11], rax
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r10 + rax + 0x30], 0
jne 0x18010e890
sub eax, 1
movsxd r8, eax
js 0x18010e8c9
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r10 + r8 + 0x30]
lea ecx, [r9*8]
xor edx, ecx
xor r9d, edx
sub r8, 1
jns 0x18010e8b0
xor edx, edx
mov eax, r9d
div esi
movsxd rax, edx
lea rcx, [rdi + rax*8]
mov rax, qword [rdi + rax*8]
mov qword [r10], rax
mov qword [rcx], r10
mov r10, qword [r11]
test r10, r10
jne 0x18010e880
inc ebx
add r11, 8
cmp ebx, dword [r13 + 0x14]
jl 0x18010e875
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x18010eb5f
cmp dword [0x1801e5920], 0
je 0x18010eb56
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010e922
call qword [0x1801e59a8]
mov rcx, rbx
call qword [0x1801e5960]
dec qword [0x1801ee598]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x1801ee550], rdx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010eb5f
call qword [0x1801e59b8]
jmp 0x18010eb5f
mov ecx, dword [rbx + 0x10]
mov eax, ecx
sub eax, dword [rbx + 0x18]
cmp eax, 0x16
jge 0x18010eb44
lea r15d, [rcx + rcx]
call fcn.18014a870
test eax, eax
jne 0x18010e9dd
xor esi, esi
test r15d, r15d
cmovns esi, r15d
movsxd rdi, esi
test esi, esi
jne 0x18010e9fe
cmp dword [0x1801e5920], esi
je 0x18010e9f3
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010e9a8
call qword [0x1801e59a8]
mov rcx, rbx
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rbx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010e9dd
call qword [0x1801e59b8]
mov eax, 7
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, rbx
call qword [0x1801e5950]
jmp 0x18010e9dd
cmp esi, 0x7fffff00
jae 0x18010e9dd
mov rcx, rbx
call qword [0x1801e5960]
mov ecx, esi
mov r14d, eax
call qword [0x1801e5968]
mov ebp, eax
cmp r14d, eax
jne 0x18010ea29
mov rdi, rbx
jmp 0x18010eb09
cmp dword [0x1801e5920], 0
je 0x18010eafb
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010ea48
call qword [0x1801e59a8]
mov rax, qword [0x1801ee5c8]
mov ecx, ebp
mov rdx, qword [0x1801ee848]
cmp rdi, rax
cmovg rax, rdi
sub ecx, r14d
mov qword [0x1801ee5c8], rax
movsxd rax, ecx
sub rdx, rax
cmp qword [0x1801ee550], rdx
jl 0x18010ea7d
call fcn.18011dba0
mov edx, ebp
mov rcx, rbx
call qword [0x1801e5958]
mov rdi, rax
test rax, rax
jne 0x18010eab3
cmp qword [0x1801ee848], rax
jle 0x18010eae7
mov ecx, esi
call fcn.18011dba0
mov edx, ebp
mov rcx, rbx
call qword [0x1801e5958]
mov rdi, rax
test rax, rax
je 0x18010eae7
mov rcx, rdi
call qword [0x1801e5960]
mov rcx, qword [0x1801ee550]
sub eax, r14d
cdqe
add rcx, rax
mov rax, qword [0x1801ee5a0]
cmp rcx, rax
mov qword [0x1801ee550], rcx
cmovg rax, rcx
mov qword [0x1801ee5a0], rax
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18010eb09
call qword [0x1801e59b8]
jmp 0x18010eb09
mov edx, ebp
mov rcx, rbx
call qword [0x1801e5958]
mov rdi, rax
test rdi, rdi
je 0x18010e9dd
mov dword [rdi + 0x10], r15d
mov rdx, qword [r13 + 0x20]
add rdx, r12
mov rcx, qword [rdx]
cmp rcx, rbx
je 0x18010eb3e
nop word [rax + rax]
mov rax, qword [rcx]
mov rdx, rcx
mov rcx, rax
cmp rax, rbx
jne 0x18010eb30
mov qword [rdx], rdi
mov rbx, rdi
mov edi, dword [rbx + 0x18]
mov rsi, qword [rsp + 0x88]
neg edi
jmp 0x18010ec9f
mov rcx, rbx
call qword [0x1801e5950]
mov dword [r13 + 0x14], esi
mov qword [r13 + 0x20], rdi
test r14, r14
js 0x18010eb86
nop dword [rax]
movzx ecx, byte [r14 + r15]
lea eax, [rbp*8]
xor ecx, eax
xor ebp, ecx
sub r14, 1
jns 0x18010eb70
lea eax, [rbp*8]
xor edx, edx
xor eax, dword [rsp + 0x80]
xor eax, ebp
div esi
mov esi, edx
call fcn.18014a870
test eax, eax
jne 0x18010e9dd
test r12d, r12d
jle 0x18010e9dd
movsxd rcx, r12d
call fcn.18011da50
mov rbx, rax
test rax, rax
je 0x18010e9dd
movsxd rbp, dword [rsp + 0xb0]
lea rcx, [rbx + 0x31]
xorps xmm0, xmm0
mov r8, rbp
movups xmmword [rax], xmm0
mov rdx, r15
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov dword [rax + 0x10], r12d
movzx eax, byte [rsp + 0xa0]
mov byte [rbx + 0x30], al
call fcn.1801625a0
mov dword [rbx + 0x1c], ebp
lea eax, [rbp + 0x32]
mov byte [rbp + rbx + 0x31], 0
mov dword [rbx + 0x18], eax
mov eax, esi
mov rsi, qword [rsp + 0x88]
lea rdx, [rax*8]
mov rax, qword [r13 + 0x20]
mov rcx, qword [rdx + rax]
mov qword [rbx], rcx
mov rax, qword [r13 + 0x20]
mov qword [rdx + rax], rbx
inc dword [r13 + 0x10]
movsxd rcx, dword [rbx + 0x18]
add rcx, rbx
cmp rsi, 0x7f
ja 0x18010ec4d
movzx eax, sil
and al, 0x7f
mov byte [rcx], al
mov eax, 1
jmp 0x18010ec79
cmp rsi, 0x3fff
ja 0x18010ec71
mov rax, rsi
shr rax, 7
or al, 0x80
mov byte [rcx], al
movzx eax, sil
and al, 0x7f
mov byte [rcx + 1], al
mov eax, 2
jmp 0x18010ec79
mov rdx, rsi
call fcn.1800c0900
add dword [rbx + 0x18], eax
mov edi, dword [rbx + 0x18]
mov dword [rbx + 0x14], edi
mov qword [rbx + 0x28], rsi
cmp dword [r13], 1
je 0x18010ec9f
inc edi
mov dword [rbx + 0x18], edi
mov eax, dword [r13]
neg eax
sbb cx, cx
mov word [rbx + 0x22], cx
cmp rsi, qword [rbx + 0x28]
je 0x18010ed2d
mov rdx, rbx
mov rcx, r13
call fcn.1800b6fc0
movsxd rcx, dword [rbx + 0x18]
mov rdx, rsi
sub rdx, qword [rbx + 0x28]
add rcx, rbx
cmp rdx, 0x7f
ja 0x18010ecd4
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x18010ecfa
cmp rdx, 0x3fff
ja 0x18010ecf5
mov rax, rdx
shr rax, 7
or al, 0x80
and dl, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dl
mov eax, 2
jmp 0x18010ecfa
call fcn.1800c0900
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov qword [rbx + 0x28], rsi
mov esi, 1
mov dword [rbx + 0x14], eax
cmp dword [r13], esi
je 0x18010ed31
inc eax
mov dword [rbx + 0x18], eax
mov eax, dword [r13]
neg eax
mov dword [rbx + 0x24], 0
sbb cx, cx
mov word [rbx + 0x22], cx
jmp 0x18010ed31
mov esi, dword [rsp + 0x20]
movsxd r11, dword [rsp + 0x90]
test r11d, r11d
js 0x18010ee7e
mov ecx, dword [r13]
cmp ecx, 1
jne 0x18010ed60
mov eax, dword [rbx + 0x18]
mov byte [rbx + 0x21], cl
add eax, edi
mov rcx, qword [r13 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x18010e9e2
movsx eax, word [rbx + 0x22]
cmp r11d, eax
je 0x18010edd7
test ecx, ecx
jne 0x18010ee20
movsxd rax, dword [rbx + 0x18]
mov rdx, r11
mov byte [rax + rbx], 1
movsxd rcx, dword [rbx + 0x18]
lea eax, [rcx + 1]
mov dword [rbx + 0x18], eax
mov rax, rcx
lea rcx, [rbx + 1]
add rcx, rax
cmp r11, 0x7f
ja 0x18010eda2
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x18010edc8
cmp rdx, 0x3fff
ja 0x18010edc3
mov rax, rdx
shr rax, 7
or al, 0x80
and dl, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dl
mov eax, 2
jmp 0x18010edc8
call fcn.1800c0900
add dword [rbx + 0x18], eax
mov word [rbx + 0x22], r11w
mov dword [rbx + 0x24], 0
test esi, esi
je 0x18010ee82
mov esi, dword [rsp + 0x98]
movsxd rcx, dword [rbx + 0x18]
mov eax, esi
sub eax, dword [rbx + 0x24]
add rcx, rbx
add eax, 2
movsxd rdx, eax
cmp rdx, 0x7f
ja 0x18010ee2a
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], esi
add eax, edi
mov rcx, qword [r13 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x18010e9e2
mov esi, r11d
mov word [rbx + 0x22], r11w
jmp 0x18010ede6
cmp rdx, 0x3fff
ja 0x18010ee61
mov rax, rdx
and dl, 0x7f
shr rax, 7
or al, 0x80
mov byte [rcx + 1], dl
mov byte [rcx], al
mov eax, 2
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], esi
add eax, edi
mov rcx, qword [r13 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x18010e9e2
call fcn.1800c0900
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], esi
add eax, edi
mov rcx, qword [r13 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x18010e9e2
mov byte [rbx + 0x20], 1
mov eax, dword [rbx + 0x18]
mov rcx, qword [r13 + 8]
add eax, edi
add dword [rcx], eax
xor eax, eax
jmp 0x18010e9e2