Function at 0x14031f470
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r13
push r15
mov eax, 0x50
call fcn.140342130
sub rsp, rax
mov r15d, dword [rsp + 0xa0]
xor ebp, ebp
movsxd rbx, r9d
mov rdi, r8
mov rsi, rcx
mov r13d, ebp
test edx, edx
jle 0x14031f8d9
test r9d, r9d
jle 0x14031f8d9
cmp ebx, r15d
jg 0x14031f8b9
cmp r15d, 0xb
jl 0x14031f8b9
mov qword [rsp + 0x90], r14
lea r8d, [rax - 2]
movsxd r14, r15d
lea rdx, str.crypto_rsa_rsa_ssl.c
mov rcx, r14
mov qword [rsp + 0x40], r14
call fcn.14023ab00
mov r10, rax
test rax, rax
jne 0x14031f52f
lea r9, str.crypto_rsa_rsa_ssl.c
mov dword [rsp + 0x20], 0x50
lea edx, [rbp + 0x72]
lea ecx, [rbp + 4]
lea r8d, [rbp + 0x41]
call fcn.140253150
lea eax, [rbp - 1]
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r13
pop rdi
pop rsi
pop rbp
ret
add rdi, rbx
mov qword [rsp + 0x80], r12
add r10, r14
mov rdx, r15
mov eax, ebx
lea ecx, [rbx - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
mov r8, r10
and ecx, eax
dec r10
dec ecx
mov eax, ecx
and eax, 1
sub ebx, eax
mov eax, ecx
and eax, 1
sub rdi, rax
movzx eax, byte [rdi]
and al, cl
mov byte [r10], al
sub rdx, 1
jne 0x14031f540
movzx r14d, byte [r8]
lea r11d, [rdx + 2]
movzx eax, al
lea rbx, [r10 + 2]
xor r14d, 2
dec eax
dec r14d
shr eax, 0x1f
neg eax
shr r14d, 0x1f
neg r14d
mov r9d, ebp
and r14d, eax
mov edi, ebp
mov dword [rsp + 0x30], r14d
mov r12d, r14d
not r12d
mov r8d, 0xffffffff
mov dword [rsp + 0x34], r12d
mov eax, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
and eax, 0x6b
mov dword [rsp + 0x38], eax
nop word [rax + rax]
movzx edx, byte [rbx]
lea rbx, [rbx + 1]
dec edx
shr edx, 0x1f
neg edx
and r8d, edx
or r9d, edx
mov dword [rsp + 0x34], r8d
not r8d
mov dword [rsp + 0x30], r8d
mov r8d, r9d
mov ecx, dword [rsp + 0x34]
not r8d
mov eax, dword [rsp + 0x30]
and ecx, r11d
and r13d, eax
inc r11d
or r13d, ecx
mov eax, r8d
movzx ecx, byte [rbx - 1]
and eax, 1
xor ecx, 3
add eax, edi
dec ecx
shr ecx, 0x1f
neg ecx
or ecx, r9d
mov edi, ecx
and edi, eax
cmp r11d, r15d
jl 0x14031f5d0
mov r9d, dword [rsp + 0x88]
lea eax, [r13 - 0xa]
or eax, r13d
mov r11d, 1
xor eax, r13d
shr eax, 0x1f
dec eax
and r14d, eax
mov eax, r14d
mov ecx, r14d
or eax, r12d
not ecx
mov dword [rsp + 0x34], eax
mov r12d, r15d
not eax
sub r12d, r13d
mov dword [rsp + 0x30], eax
dec r12d
mov eax, dword [rsp + 0x34]
and eax, dword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
and edx, 0x71
or edx, eax
lea eax, [rdi - 8]
or eax, edi
xor eax, edi
shr eax, 0x1f
neg eax
and r14d, eax
mov eax, r14d
or eax, ecx
mov ecx, r9d
mov dword [rsp + 0x38], eax
sub ecx, r12d
xor ecx, r12d
not eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x34]
and eax, edx
and r8d, 0x73
mov edx, r14d
or r8d, eax
not edx
mov eax, r12d
xor eax, r9d
or ecx, eax
xor ecx, r9d
shr ecx, 0x1f
dec ecx
and r14d, ecx
mov eax, r14d
or eax, edx
lea edx, [r15 - 0xb]
mov dword [rsp + 0x88], eax
mov ecx, edx
sub ecx, r9d
not eax
mov dword [rsp + 0x38], eax
xor ecx, r9d
mov eax, dword [rsp + 0x88]
mov edi, dword [rsp + 0x38]
and eax, r8d
and edi, 0x6d
or edi, eax
mov eax, edx
xor eax, r9d
mov dword [rsp + 0x30], edi
or ecx, eax
xor ecx, edx
shr ecx, 0x1f
neg ecx
mov dword [rsp + 0x88], ecx
not ecx
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x38]
and eax, edx
and ecx, r9d
or ecx, eax
mov dword [rsp + 0x34], ecx
cmp edx, r11d
jle 0x14031f7d4
mov r13d, r15d
sub r13d, r12d
add r13d, 0xfffffff5
nop word [rax + rax]
mov eax, r13d
and eax, r11d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r15d
sub eax, r11d
dec ecx
movsxd r8, eax
cmp r8, 0xb
jle 0x14031f7c4
movzx ebx, cl
lea rax, [r10 + 0xb]
mov r9d, ebx
movsxd rdi, r11d
not r9d
add r8, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x88], ebx
lea rax, [rax + 1]
mov dword [rsp + 0x38], r9d
mov ecx, dword [rsp + 0x88]
movzx edx, byte [rdi + rax - 1]
and dl, cl
mov ecx, dword [rsp + 0x38]
and cl, byte [rax - 1]
or cl, dl
mov byte [rax - 1], cl
sub r8, 1
jne 0x14031f790
lea edx, [r15 - 0xb]
add r11d, r11d
cmp r11d, edx
jl 0x14031f750
mov ecx, dword [rsp + 0x34]
mov edi, dword [rsp + 0x30]
movsxd r11, ecx
test ecx, ecx
jle 0x14031f848
mov r9d, r12d
mov rbx, r10
shr r9d, 0x1f
sub rbx, rsi
nop dword [rax + rax]
mov edx, ebp
lea rsi, [rsi + 1]
sub edx, r12d
mov ecx, ebp
shr ecx, 0x1f
movzx eax, r9b
xor al, cl
shr edx, 0x1f
xor dl, r9b
inc ebp
or dl, al
movzx eax, r14b
xor dl, cl
neg dl
movzx ecx, dl
and ecx, eax
mov dword [rsp + 0x88], ecx
not ecx
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x88]
movzx ecx, byte [rbx + rsi + 0xa]
and cl, al
mov eax, dword [rsp + 0x38]
and al, byte [rsi - 1]
or al, cl
mov byte [rsi - 1], al
sub r11, 1
jne 0x14031f7f0
mov rdx, qword [rsp + 0x40]
lea r8, str.crypto_rsa_rsa_ssl.c
mov r9d, 0xab
mov rcx, r10
call fcn.14023ac60
mov edx, WSACleanup
mov dword [rsp + 0x20], 0xac
lea r9, str.crypto_rsa_rsa_ssl.c
mov r8d, edi
lea ecx, [rdx - 0x6e]
call fcn.140253150
mov ecx, r14d
and ecx, 1
call fcn.1402534a0
mov dword [rsp + 0x88], r14d
not r14d
mov dword [rsp + 0x38], r14d
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0x38]
and ecx, r12d
mov r12, qword [rsp + 0x80]
or eax, ecx
jmp 0x14031f513
mov edx, WSACleanup
mov dword [rsp + 0x20], 0x4a
lea r9, str.crypto_rsa_rsa_ssl.c
lea ecx, [rdx - 0x6e]
lea r8d, [rdx - 3]
call fcn.140253150
mov eax, 0xffffffff
jmp 0x14031f51b