Function at 0x1800b6710
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xc8
mov rax, qword [0x1802b7c00]
xor rax, rsp
mov qword [rbp - 9], rax
movzx r12d, r9b
mov byte [rbp - 0x69], r12b
movzx r13d, r8b
mov byte [rbp - 0x68], r8b
mov rsi, rdx
mov rdi, rcx
cmp dword [rcx + 0xc], 1
jl 0x1800b6761
mov rcx, qword [rcx]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
xor r14d, r14d
cmp dword [rdi + 8], 2
jl 0x1800b688a
cmp byte [rdx + 0x38], r14b
jne 0x1800b688a
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.1800b4340
mov rbx, rax
test rax, rax
je 0x1800b688a
cmp qword [rdi + 0x50], r14
je 0x1800b67e5
mov r10, qword [rdi + 0x58]
cmp rax, r10
je 0x1800b67e5
mov r9, qword [rdi + 0x48]
dec r9
shr rax, 5
xor rax, rbx
shr rax, 4
and rax, r9
mov edx, r14d
mov r11, qword [rdi + 0x40]
nop dword [rax + rax]
imul rcx, rax, 0x38
add rcx, r11
mov r8, qword [rcx]
cmp r8, rbx
je 0x1800b67e8
cmp r8, r10
je 0x1800b67e5
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x1800b67c0
mov rcx, r14
lea r15, [rcx + 8]
test rcx, rcx
cmove r15, r14
test r15, r15
je 0x1800b6849
cmp byte [r15 + 0x2c], r14b
je 0x1800b6849
mov eax, dword [reloc.WS2_32.dll_getpeername]
mov ecx, dword [0x1802baaa0]
mov edx, dword [0x1802baa70]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], r12b
movzx r9d, r13b
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.1800b58c0
test al, al
jne 0x1800b71d9
cmp byte [r15 + 0x2c], r14b
jne 0x1800b688a
cmp byte [rbx + 0x88], r14b
je 0x1800b685b
lea rdx, str.inlining_failed:_function_is_variadic
jmp 0x1800b6882
test r15, r15
jne 0x1800b6869
lea rdx, str.inlining_failed:_cant_inline_recursive_calls
jmp 0x1800b6882
cmp byte [rdi + 0x421], r14b
jne 0x1800b687b
cmp byte [rdi + 0x422], r14b
je 0x1800b688a
lea rdx, str.inlining_failed:_module_uses_getfenv_setfenv
mov rcx, qword [rdi]
call fcn.1800aeb20
mov qword [rbp - 0x29], rdi
mov r9d, dword [rdi + 0x40c]
mov dword [rbp - 0x5d], r9d
mov dword [rbp - 0x21], r9d
movzx ecx, byte [rsi + 0x38]
mov r8d, dword [rsi + 0x30]
inc r8d
add r8d, ecx
cmp r8d, r12d
cmovb r8d, r12d
cmp byte [rbp + 0x77], 0
je 0x1800b69e2
sub r8d, r12d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x1800b7225
sub r9b, r12b
mov dword [rbp - 0x65], r9d
mov dword [rdi + 0x40c], ecx
mov eax, 0x410
cmp dword [rdi + 0x410], ecx
mov edx, 0x40c
cmovb eax, edx
add rax, rdi
mov eax, dword [rax]
mov dword [rdi + 0x410], eax
mov byte [rbp - 0x59], 0
mov r15, 0xffffffffffffffff
mov r13d, r15d
cmp dword [rdi + 8], 1
jl 0x1800b697c
cmp byte [rsi + 0x38], 0
jne 0x1800b697c
cmp qword [rdi + 0x168], 0
je 0x1800b697c
mov r10, qword [rdi + 0x170]
cmp rsi, r10
je 0x1800b697c
mov r9, qword [rdi + 0x160]
dec r9
mov rax, rsi
shr rax, 5
xor rax, rsi
shr rax, 4
and rax, r9
mov rdx, r14
mov r11, qword [rdi + 0x158]
nop
mov rcx, rax
shl rcx, 4
add rcx, r11
mov r8, qword [rcx]
cmp r8, rsi
je 0x1800b69fb
cmp r8, r10
je 0x1800b697c
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x1800b6950
mov ecx, 2
movzx edx, byte [0x1802baad0]
test dl, dl
je 0x1800b6cf6
test r13d, r13d
js 0x1800b6d61
cmp qword [rsi + 0x30], 3
jne 0x1800b6cfb
mov rbx, r14
mov r12, qword [rsi + 0x28]
nop dword [rax + rax]
mov rdx, qword [r12]
mov rcx, rdi
call fcn.1800bc730
test eax, eax
jns 0x1800b6ce8
inc rbx
add r12, 8
cmp rbx, 3
jb 0x1800b69b0
mov ecx, 2
movzx edx, byte [0x1802baad0]
jmp 0x1800b6cfb
mov dword [rbp - 0x65], r9d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x1800b720e
jmp 0x1800b68d6
lea r12, [rcx + 8]
test rcx, rcx
cmove r12, r14
test r12, r12
je 0x1800b697c
mov r12d, dword [r12]
mov ebx, r12d
test r12d, r12d
js 0x1800b6af1
mov rax, qword [rdi]
mov ecx, dword [rax + 0x2e0]
shr ecx, 4
test cl, 1
je 0x1800b6af1
lea r9, [rdi + 0xb8]
lea r8, [rdi + 0x90]
mov rdx, qword [rsi + 0x20]
lea rcx, [rbp - 0x49]
call fcn.1800abcc0
movups xmm1, xmmword [rax]
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x1800b6a74
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + rax*8 - 8]
mov rcx, rdi
call fcn.1800b4db0
test al, al
je 0x1800b6a74
mov cl, 1
jmp 0x1800b6a76
xor cl, cl
movq r8, xmm1
psrldq xmm1, 8
test r8, r8
je 0x1800b6abb
lea rdx, [0x18027f7e0]
lea rax, [0x18026f6a9]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x28], rax
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
movq r9, xmm1
lea rdx, str.builtin__s._s__d_s
mov rcx, qword [rdi]
call fcn.1800aeb20
jmp 0x1800b6af1
movq r8, xmm1
test r8, r8
je 0x1800b6af1
lea rdx, [0x18027f7e0]
lea rax, [0x18026f6a9]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0x30]
lea rdx, str.builtin__s__d_s
mov rcx, qword [rdi]
call fcn.1800aeb20
cmp ebx, 0x39
jne 0x1800b6b36
cmp byte [rbp + 0x7f], 0
jne 0x1800b697c
cmp byte [rbp - 0x69], 1
jne 0x1800b697c
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], 0
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
mov r9b, 1
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.1800b50d0
jmp 0x1800b71d0
mov r13d, ebx
cmp ebx, 0x22
jne 0x1800b697c
cmp qword [rsi + 0x30], 3
jne 0x1800b697c
mov r12, qword [rsi + 0x28]
mov rax, qword [r12 + 8]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.1800c2b00
test rax, rax
je 0x1800b697c
cmp dword [rax], 0
je 0x1800b697c
mov rax, qword [r12 + 0x10]
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.1800c2b00
test rax, rax
je 0x1800b697c
cmp dword [rax], 0
je 0x1800b697c
mov rax, qword [r12 + 8]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.1800c2b00
test rax, rax
je 0x1800b6bd8
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x49], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x39], xmm1
jmp 0x1800b6be4
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
lea rax, [rbp - 0x49]
movups xmm2, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movsd qword [rbp - 0x39], xmm0
mov rax, qword [r12 + 0x10]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.1800c2b00
test rax, rax
je 0x1800b6c26
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x49], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x39], xmm1
jmp 0x1800b6c32
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
lea rax, [rbp - 0x49]
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movsd qword [rbp - 0x39], xmm0
movd eax, xmm2
cmp eax, 3
jne 0x1800b6c56
unpckhpd xmm2, xmm2
cvttsd2si edx, xmm2
jmp 0x1800b6c59
mov edx, r15d
movd eax, xmm1
cmp eax, 3
jne 0x1800b6c6c
unpckhpd xmm1, xmm1
cvttsd2si ecx, xmm1
jmp 0x1800b6c6f
mov ecx, r15d
test edx, edx
js 0x1800b697c
test ecx, ecx
jle 0x1800b697c
lea eax, [rcx + rdx]
cmp eax, 0x20
jg 0x1800b697c
shl ecx, 5
sub ecx, 0x20
or ecx, edx
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov rcx, qword [rdi]
call fcn.1800ae1e0
test eax, eax
js 0x1800b723c
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0x3b
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp - 0x69]
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.1800b5410
jmp 0x1800b71d0
mov ecx, 3
movzx edx, byte [0x1802baad0]
jmp 0x1800b6cfb
test r13d, r13d
js 0x1800b6d61
mov r8, qword [rsi + 0x30]
cmp r8, 1
jb 0x1800b6d61
mov eax, 2
test dl, dl
cmovne rax, rcx
cmp r8, rax
ja 0x1800b6d61
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + r8*8 - 8]
mov rcx, rdi
call fcn.1800b4db0
test al, al
jne 0x1800b6d36
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r13d
jmp 0x1800b6cb7
cmp dword [rdi + 8], 2
jl 0x1800b6d61
mov edx, r13d
lea rcx, [rbp - 0x49]
call fcn.1800ad120
movsd xmm0, qword [rax]
movsd qword [rbp - 0x19], xmm0
mov ecx, dword [rax + 8]
mov eax, dword [rbp - 0x19]
cmp dword [rsi + 0x30], eax
jne 0x1800b6d61
test cl, 1
jne 0x1800b6d2a
cmp byte [rsi + 0x38], 0
je 0x1800b6dc1
mov rcx, qword [rsi + 0x20]
mov rdx, r14
mov eax, dword [0x1802c4354]
cmp dword [rcx + 8], eax
cmove rdx, rcx
mov r12, qword [rdx + 0x20]
mov rdx, r12
mov rcx, rdi
call fcn.1800bc730
mov dword [rbp - 0x59], eax
test eax, eax
jns 0x1800b6df8
mov ecx, dword [rbp - 0x65]
mov byte [rbp - 0x59], cl
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rdx, r12
mov rcx, rdi
call fcn.1800bbaa0
nop
jmp 0x1800b6df2
test r13d, r13d
jns 0x1800b6df8
mov rdx, qword [rsi + 0x20]
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
mov ecx, dword [rbp - 0x65]
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rcx, rdi
call fcn.1800bbaa0
nop
mov dword [rdi + 0x40c], ebx
mov byte [rbp - 0x61], 0
mov rax, r14
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x1800b6e77
mov r15d, dword [rbp - 0x65]
nop dword [rax]
lea r12, [rax + 1]
movzx r8d, al
add r8b, byte [rsi + 0x38]
mov rdx, qword [rsi + 0x28]
inc r8b
mov rdx, qword [rdx + rax*8]
add r8b, r15b
cmp r12, rcx
jne 0x1800b6e3c
mov rcx, rdi
call fcn.1800b4f70
mov byte [rbp - 0x61], al
jmp 0x1800b6e64
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r8b
inc eax
mov dword [rdi + 0x40c], eax
mov rcx, rdi
call fcn.1800bbaa0
nop
mov dword [rdi + 0x40c], ebx
mov rax, r12
mov rcx, qword [rsi + 0x30]
cmp r12, rcx
jb 0x1800b6e10
mov r15, 0xffffffffffffffff
mov rax, qword [rsi + 0x20]
cmp dword [rdi + 0xc], 1
jl 0x1800b6e8f
mov rcx, qword [rdi]
mov eax, dword [rax + 0x14]
inc eax
mov dword [rcx + 0x1b8], eax
cmp byte [rsi + 0x38], 0
je 0x1800b700e
mov rcx, qword [rsi + 0x20]
mov r12, r14
mov eax, dword [0x1802c4354]
cmp dword [rcx + 8], eax
cmove r12, rcx
cmp dword [rdi + 0xc], 1
jl 0x1800b6ec3
mov rcx, qword [rdi]
mov eax, dword [r12 + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [r12 + 0x28]
nop dword [rax + rax]
inc r15
cmp byte [rbx + r15], 0
jne 0x1800b6ed0
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x41], r15
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi]
call fcn.1800ae4c0
mov dword [rbp - 0x19], eax
test eax, eax
js 0x1800b724d
mov r13, qword [rdi]
mov rdx, r15
test r15, r15
je 0x1800b6f31
lea r8, [rbx - 1]
add r8, rdx
nop dword [rax + rax]
mov ecx, r15d
shl ecx, 5
mov eax, r15d
shr eax, 2
add ecx, eax
movzx eax, byte [r8]
add ecx, eax
xor r15d, ecx
lea r8, [r8 - 1]
sub rdx, 1
jne 0x1800b6f10
movzx ecx, r15b
shl ecx, 8
movzx eax, byte [rbp - 0x59]
or ecx, eax
shl ecx, 8
mov r15d, dword [rbp - 0x65]
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x14
mov dword [rbp - 0x65], ecx
mov rdx, qword [r13 + 0x30]
cmp rdx, qword [r13 + 0x38]
je 0x1800b6f67
mov dword [rdx], ecx
add qword [r13 + 0x30], 4
jmp 0x1800b6f74
lea r8, [rbp - 0x65]
lea rcx, [r13 + 0x28]
call fcn.18009aba0
lea rcx, [r13 + 0x40]
lea r8, [r13 + 0x1b8]
mov rdx, qword [r13 + 0x48]
cmp rdx, qword [r13 + 0x50]
je 0x1800b6f95
mov eax, dword [r8]
mov dword [rdx], eax
add qword [r13 + 0x48], 4
jmp 0x1800b6f9a
call fcn.18009aba0
mov rbx, qword [rdi]
mov eax, dword [rbp - 0x19]
mov dword [rbp - 0x19], eax
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800b6fba
mov dword [rdx], eax
add qword [rbx + 0x30], 4
jmp 0x1800b6fc3
lea r8, [rbp - 0x19]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800b6fe4
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800b6fe9
call fcn.18009aba0
movzx r8d, byte [rbp - 0x59]
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, qword [r12 + 0x20]
mov rcx, rdi
call fcn.1800c0850
jmp 0x1800b70b8
test r13d, r13d
js 0x1800b70b4
mov rbx, qword [rdi]
lea rcx, [rbx + 0x28]
mov rdx, qword [rcx + 8]
mov r15, rdx
sub r15, qword [rcx]
sar r15, 2
movzx eax, r13b
shl eax, 8
or eax, 0x44
mov dword [rbp - 0x19], eax
cmp rdx, qword [rcx + 0x10]
je 0x1800b7048
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x1800b7051
lea r8, [rbp - 0x19]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800b7072
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800b7077
call fcn.18009aba0
mov r9b, 1
movzx r8d, byte [rbp - 0x65]
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.1800bb4d0
mov rax, qword [rdi]
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
sub rcx, rdx
sar rcx, 2
sub ecx, r15d
dec ecx
movzx eax, cl
cmp eax, ecx
jne 0x1800b71f9
shl ecx, 0x18
or dword [rdx + r15*4], ecx
mov r15d, dword [rbp - 0x65]
mov rbx, qword [rdi]
movzx r12d, byte [rbp - 0x69]
cmp byte [rbp + 0x7f], 0
je 0x1800b70ca
xor cl, cl
jmp 0x1800b70cf
lea ecx, [r12 + 1]
cmp byte [rbp - 0x61], 0
je 0x1800b70d9
xor al, al
jmp 0x1800b70e2
movzx eax, byte [rsi + 0x38]
inc al
add al, byte [rsi + 0x30]
movzx ecx, cl
shl ecx, 8
movzx eax, al
or ecx, eax
shl ecx, 8
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x15
mov dword [rbp - 0x19], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800b7112
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x1800b711f
lea r8, [rbp - 0x19]
lea rcx, [rbx + 0x28]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800b7140
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800b7145
call fcn.18009aba0
cmp byte [rbp + 0x77], 0
jne 0x1800b71d0
movzx esi, r12b
test r12b, r12b
je 0x1800b71d0
movzx r12d, byte [rbp - 0x68]
nop dword [rax]
mov rbx, qword [rdi]
lea eax, [r15 + r14]
movzx edx, al
shl edx, 8
lea eax, [r14 + r12]
movzx ecx, al
or edx, ecx
shl edx, 8
or edx, 6
mov dword [rbp - 0x19], edx
lea rcx, [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
je 0x1800b7196
mov dword [rax], edx
add qword [rbx + 0x30], 4
jmp 0x1800b71a2
lea r8, [rbp - 0x19]
mov rdx, rax
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800b71c3
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800b71c8
call fcn.18009aba0
inc r14
cmp r14, rsi
jb 0x1800b7160
mov eax, dword [rbp - 0x5d]
mov dword [rdi + 0x40c], eax
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.1801fc6e0
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rsi + 0x20]
add rcx, 0xc
lea rdx, str.Exceeded_jump_distance_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
int3
lea rcx, [r12 + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
int3