Function at 0x1800e8c40
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r14
mov eax, 0x50
call fcn.18017e6d0
sub rsp, rax
xor r12d, r12d
movsxd rdi, r9d
mov rbp, r8
mov rsi, rcx
mov r14d, r12d
test edx, edx
jle 0x1800e90d2
test r9d, r9d
jle 0x1800e90d2
mov qword [rsp + 0x90], r13
mov r13d, dword [rsp + 0xa0]
cmp edi, r13d
jg 0x1800e90aa
cmp r13d, 0xb
jl 0x1800e90aa
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x98], r15
movsxd r15, r13d
lea r8d, [rax - 2]
lea rdx, str.crypto_rsa_rsa_ssl.c
mov rcx, r15
mov qword [rsp + 0x40], r15
call fcn.180054d90
mov rbx, rax
test rax, rax
jne 0x1800e8d14
lea r9, str.crypto_rsa_rsa_ssl.c
lea edx, [rax + 0x72]
lea ecx, [rax + 4]
lea r8d, [r12 + 0x41]
mov dword [rsp + 0x20], 0x50
call fcn.1800493f0
or eax, 0xffffffff
mov rbx, qword [rsp + 0x80]
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0x90]
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
add rbp, rdi
add rbx, r15
test r13d, r13d
jle 0x1800e8d52
mov rdx, r13
mov eax, edi
lea ecx, [rdi - 1]
dec rbx
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edi, eax
mov eax, ecx
and eax, 1
sub rbp, rax
movzx eax, byte [rbp]
and al, cl
dec rdx
mov byte [rbx], al
jne 0x1800e8d22
movzx ecx, byte [rbx]
movzx eax, byte [rbx + 1]
mov r11d, 2
xor eax, 2
mov r10d, r12d
mov edi, r12d
lea ebp, [rax - 1]
not eax
shr eax, 0x1f
shr ebp, 0x1f
and ebp, eax
lea eax, [rcx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
neg ebp
and eax, ecx
neg eax
and ebp, eax
mov dword [rsp + 0x30], ebp
mov r15d, ebp
not r15d
mov dword [rsp + 0x34], r15d
mov eax, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
and eax, 0x6b
mov dword [rsp + 0x38], eax
cmp r13d, r11d
jle 0x1800e8e31
or r8d, 0xffffffff
lea r9, [rbx + 2]
nop word [rax + rax]
movzx eax, byte [r9]
inc r9
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and r8d, edx
or r10d, edx
mov dword [rsp + 0x34], r8d
not r8d
mov dword [rsp + 0x30], r8d
mov ecx, dword [rsp + 0x34]
mov r8d, r10d
mov eax, dword [rsp + 0x30]
and ecx, r11d
not r8d
and eax, r14d
mov r14d, ecx
inc r11d
or r14d, eax
movzx eax, byte [r9 - 1]
xor eax, 3
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r8d
neg ecx
and eax, 1
add eax, edi
or ecx, r10d
mov edi, ecx
and edi, eax
cmp r11d, r13d
jl 0x1800e8dc0
mov r9d, dword [rsp + 0x88]
lea eax, [r14 - 0xa]
mov r11d, r13d
or eax, r14d
sub r11d, r14d
xor eax, r14d
dec r11d
shr eax, 0x1f
dec eax
and ebp, eax
mov eax, ebp
mov ecx, ebp
or eax, r15d
not ecx
lea r15d, [r13 - 0xb]
mov dword [rsp + 0x34], eax
not eax
mov dword [rsp + 0x30], eax
mov edx, dword [rsp + 0x34]
and edx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x30], r11d
and eax, 0x71
or edx, eax
lea eax, [rdi - 8]
or eax, edi
xor eax, edi
shr eax, 0x1f
dec eax
and ebp, eax
mov eax, ebp
or eax, ecx
mov ecx, r9d
mov dword [rsp + 0x38], eax
not eax
sub ecx, r11d
mov dword [rsp + 0x34], eax
mov r8d, dword [rsp + 0x38]
xor ecx, r11d
mov eax, dword [rsp + 0x34]
and r8d, edx
mov edx, ebp
and eax, 0x73
not edx
or r8d, eax
mov eax, r11d
xor eax, r9d
or ecx, eax
xor ecx, r9d
shr ecx, 0x1f
dec ecx
and ebp, ecx
lea ecx, [r13 - 0xb]
mov eax, ebp
or eax, edx
mov edx, ecx
mov dword [rsp + 0x88], eax
not eax
sub edx, r9d
mov dword [rsp + 0x38], eax
mov r14d, dword [rsp + 0x88]
xor edx, r9d
mov eax, dword [rsp + 0x38]
and r14d, r8d
and eax, 0x6d
or r14d, eax
mov eax, ecx
xor eax, r9d
mov dword [rsp + 0x3c], r14d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x88], edx
not edx
mov dword [rsp + 0x38], edx
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0x38]
and ecx, r15d
and eax, r9d
or ecx, eax
mov r10d, 1
mov dword [rsp + 0x34], ecx
cmp r15d, r10d
jle 0x1800e8fd4
mov r14d, r13d
sub r14d, r11d
add r14d, 0xfffffff5
nop
mov eax, r14d
movsxd rdi, r10d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r13d
sub eax, r10d
dec ecx
cmp eax, 0xb
jle 0x1800e8fbe
movzx r11d, cl
add eax, 0xfffffff5
lea rdx, [rbx + 0xb]
mov r9d, r11d
mov r8d, eax
not r9d
nop word [rax + rax]
mov dword [rsp + 0x88], r11d
mov dword [rsp + 0x38], r9d
mov eax, dword [rsp + 0x88]
movzx ecx, byte [rdx + rdi]
inc rdx
and cl, al
mov eax, dword [rsp + 0x38]
and al, byte [rdx - 1]
or al, cl
dec r8
mov byte [rdx - 1], al
jne 0x1800e8f90
add r10d, r10d
cmp r10d, r15d
jl 0x1800e8f50
mov r11d, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x3c]
movsxd r10, ecx
test ecx, ecx
jle 0x1800e9044
mov r9d, r11d
mov r8, rbx
neg r11d
shr r9d, 0x1f
sub r8, rsi
movzx edi, bpl
nop
mov ecx, r12d
lea edx, [r11 + r12]
inc rsi
shr ecx, 0x1f
shr edx, 0x1f
inc r12d
movzx eax, cl
xor dl, r9b
xor al, r9b
or dl, al
xor dl, cl
neg dl
movzx eax, dl
and eax, edi
mov dword [rsp + 0x88], eax
not eax
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x88]
movzx ecx, byte [r8 + rsi + 0xa]
and cl, al
mov eax, dword [rsp + 0x3c]
and al, byte [rsi - 1]
or al, cl
dec r10
mov byte [rsi - 1], al
jne 0x1800e8ff0
mov rdx, qword [rsp + 0x40]
lea r8, str.crypto_rsa_rsa_ssl.c
mov r9d, 0xa5
mov rcx, rbx
call fcn.180054ea0
mov edx, WSACleanup
lea r9, str.crypto_rsa_rsa_ssl.c
lea ecx, [rdx - 0x6e]
mov r8d, r14d
mov dword [rsp + 0x20], 0xa6
call fcn.1800493f0
mov ecx, ebp
and ecx, 1
call fcn.180049390
mov dword [rsp + 0x88], ebp
not ebp
mov dword [rsp + 0x3c], ebp
mov eax, dword [rsp + 0x88]
and eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
or eax, ecx
jmp 0x1800e8cf0
mov edx, WSACleanup
lea r9, str.crypto_rsa_rsa_ssl.c
mov dword [rsp + 0x20], 0x4a
lea ecx, [rdx - 0x6e]
lea r8d, [rdx - 3]
call fcn.1800493f0
or eax, 0xffffffff
jmp 0x1800e8d00
or eax, 0xffffffff
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret