Function at 0x140233c90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x100
call fcn.1402807a0
sub rsp, rax
mov rax, qword [0x1403b9868]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x168]
mov r15d, dword [rsp + 0x160]
mov rsi, qword [rsp + 0x180]
xor ebp, ebp
or r14d, 0xffffffff
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x178]
movsxd rbx, r9d
mov rdi, r8
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x50], r15d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], ebp
mov r13d, ebp
mov r12d, ebp
test rax, rax
jne 0x140233d21
call fcn.1401cd3e0
mov qword [rsp + 0x40], rax
test rsi, rsi
mov rcx, rax
cmove rsi, rax
mov qword [rsp + 0x48], rsi
call fcn.1401e3270
movsxd rsi, eax
cmp dword [rsp + 0x34], ebp
jle 0x140234302
test ebx, ebx
jle 0x140234302
cmp r15d, ebx
jl 0x1402342e0
lea ecx, [rsi*2 + 2]
cmp r15d, ecx
jl 0x1402342e0
sub r15d, esi
lea rdx, [0x1403b2e50]
mov r8d, 0x9e
dec r15d
mov ecx, r15d
call fcn.1401d5df0
mov r14, rax
test rax, rax
jne 0x140233dad
mov dword [rsp + 0x20], 0xa0
lea r9, [0x1403b2e68]
mov edx, 0xa1
mov ecx, 4
lea r8d, [rdx - 0x60]
call fcn.1401c3730
jmp 0x14023428c
mov ecx, dword [rsp + 0x50]
lea rdx, [0x1403b2e80]
mov r8d, 0xa4
call fcn.1401d5df0
mov r12, rax
test rax, rax
jne 0x140233ddc
mov dword [rsp + 0x20], 0xa7
lea r9, [0x1403b2e98]
jmp 0x140233d95
mov ecx, dword [rsp + 0x50]
add rdi, rbx
movsxd rax, ecx
add r12, rax
test ecx, ecx
jle 0x140233e1e
mov edx, ecx
nop
mov eax, ebx
lea ecx, [rbx - 1]
dec r12
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub ebx, eax
mov eax, ecx
and eax, 1
sub rdi, rax
and cl, byte [rdi]
mov byte [r12], cl
dec rdx
jne 0x140233df0
movzx eax, byte [r12]
lea rdi, [r12 + 1]
lea rcx, [rsp + 0x70]
lea r13d, [rax - 1]
not eax
add rdi, rsi
shr eax, 0x1f
shr r13d, 0x1f
mov r9d, r15d
and r13d, eax
mov rax, qword [rsp + 0x48]
mov r8, rdi
mov edx, esi
lea rbx, [r12 + 1]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x20], rax
neg r13d
call fcn.1402336d0
test eax, eax
jne 0x14023428c
mov edx, ebp
mov r8d, esi
test esi, esi
jle 0x140233eed
cmp esi, 0x20
jb 0x140233eed
lea eax, [rsi - 1]
lea r9, [rsp + 0x70]
movsxd rcx, eax
add r9, rcx
lea rax, [rcx + rbx]
lea rcx, [rsp + 0x70]
cmp rcx, rax
ja 0x140233e9b
cmp r9, rbx
jae 0x140233eed
mov eax, r8d
and eax, 0x8000001f
jge 0x140233eac
dec eax
or eax, 0xffffffe0
inc eax
mov r9d, r8d
sub r9d, eax
movsxd rax, edx
movdqu xmm0, xmmword [rsp + rax + 0x70]
movdqu xmm1, xmmword [rax + rbx]
pxor xmm1, xmm0
movdqu xmmword [rsp + rax + 0x70], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rcx + rbx]
movdqu xmm0, xmmword [rsp + rcx + 0x70]
pxor xmm1, xmm0
movdqu xmmword [rsp + rcx + 0x70], xmm1
cmp edx, r9d
jl 0x140233eb2
movsxd rdx, edx
cmp rdx, rsi
jge 0x140233f16
lea rax, [rsp + 0x70]
sub rbx, rax
nop dword [rax]
lea rcx, [rsp + 0x70]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + rbx]
xor byte [rcx], al
cmp rdx, rsi
jl 0x140233f00
mov rax, qword [rsp + 0x48]
mov r9d, r8d
lea r8, [rsp + 0x70]
mov edx, r15d
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.1402336d0
test eax, eax
jne 0x14023428c
mov edx, ebp
test r15d, r15d
jle 0x140233fbb
cmp r15d, 0x20
jb 0x140233fbb
lea eax, [r15 - 1]
movsxd rcx, eax
lea rax, [rcx + rdi]
lea r8, [rcx + r14]
cmp r14, rax
ja 0x140233f61
cmp r8, rdi
jae 0x140233fbb
mov eax, r15d
and eax, 0x8000001f
jge 0x140233f72
dec eax
or eax, 0xffffffe0
inc eax
mov r8d, r15d
sub r8d, eax
nop dword [rax + rax]
movsxd rax, edx
movdqu xmm0, xmmword [rax + r14]
movdqu xmm1, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rcx + rdi]
movdqu xmm0, xmmword [rcx + r14]
pxor xmm1, xmm0
movdqu xmmword [rcx + r14], xmm1
cmp edx, r8d
jl 0x140233f80
movsxd rax, edx
movsxd rbx, r15d
cmp rax, rbx
jge 0x140233ff0
mov r8, rbx
sub rdi, r14
lea rdx, [rax + r14]
sub r8, rax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdi + rdx]
lea rdx, [rdx + 1]
xor byte [rdx - 1], al
dec r8
jne 0x140233fe0
mov rax, qword [rsp + 0x40]
movsxd rdx, dword [rsp + 0x170]
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0xb0]
xor r9d, r9d
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
call fcn.1401d89e0
test eax, eax
je 0x14023428c
lea rdx, [rsp + 0xb0]
mov r8, rsi
mov rcx, r14
call fcn.1401c1bb0
movsxd r10, esi
mov r9d, ebp
lea ecx, [rax - 1]
not eax
mov edi, r10d
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and r13d, ecx
cmp rsi, rbx
jge 0x1402340c8
lea r11, [rsi + r14]
sub rbx, rsi
mov esi, ebp
movzx r8d, byte [r11]
lea r11, [r11 + 1]
mov eax, r8d
xor eax, 1
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
mov eax, r9d
not eax
neg edx
and eax, edx
or r9d, edx
mov dword [rsp + 0x38], eax
not eax
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
and ecx, edi
inc edi
and eax, esi
mov esi, ecx
or esi, eax
lea eax, [r8 - 1]
not r8d
shr eax, 0x1f
shr r8d, 0x1f
and eax, r8d
neg eax
or eax, r9d
and r13d, eax
dec rbx
jne 0x140234060
mov dword [rsp + 0x30], esi
mov rsi, r10
mov r11d, dword [rsp + 0x34]
mov ebx, r15d
mov r8d, r15d
sub ebx, dword [rsp + 0x30]
sub r8d, r10d
mov ecx, r11d
dec ebx
mov eax, r11d
sub ecx, ebx
xor eax, ebx
mov dword [rsp + 0x38], ebx
xor ecx, ebx
or ecx, eax
mov eax, r11d
xor ecx, r11d
shr ecx, 0x1f
dec ecx
and ecx, r9d
and r13d, ecx
lea ecx, [r8 - 1]
xor eax, ecx
mov edx, ecx
mov dword [rsp + 0x40], r13d
sub edx, r11d
xor edx, r11d
or edx, eax
xor edx, ecx
lea ecx, [r8 - 1]
shr edx, 0x1f
neg edx
mov dword [rsp + 0x30], edx
not edx
mov dword [rsp + 0x34], edx
mov edx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x30]
and edx, r11d
and eax, ecx
mov r11d, 1
or edx, eax
mov dword [rsp + 0x48], edx
cmp ecx, r11d
jle 0x1402341ea
sub r8d, ebx
mov ebp, ecx
inc rsi
lea r13d, [r8 - 1]
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 r9, eax
cmp rsi, r9
jge 0x1402341ce
movzx ebx, cl
movsxd rdi, r11d
lea rax, [rsi + r14]
mov r10d, ebx
sub r9, rsi
not r10d
nop word [rax + rax]
movzx ecx, byte [rax + rdi]
movzx edx, byte [rax]
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], r10d
mov r8d, dword [rsp + 0x34]
lea rax, [rax + 1]
and r8b, cl
mov ecx, dword [rsp + 0x30]
and cl, dl
or r8b, cl
mov byte [rax - 1], r8b
dec r9
jne 0x1402341a0
add r11d, r11d
cmp r11d, ebp
jl 0x140234160
mov r13d, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov ebx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x48]
xor ebp, ebp
movsxd r9, edx
test edx, edx
jle 0x14023425f
mov rdi, qword [rsp + 0x60]
mov r8d, ebx
mov r10d, ebx
shr r8d, 0x1f
neg r10d
sub rsi, rdi
lea rbx, [rsi + r14]
movzx r11d, r13b
nop
lea edx, [r10 + rbp]
mov ecx, ebp
movzx eax, r8b
shr edx, 0x1f
shr ecx, 0x1f
inc ebp
xor al, cl
xor dl, r8b
lea rdi, [rdi + 1]
or dl, al
xor dl, cl
movzx ecx, byte [rdi - 1]
neg dl
movzx eax, dl
and eax, r11d
mov dword [rsp + 0x48], eax
not eax
mov dword [rsp + 0x40], eax
movzx eax, byte [rbx + rdi]
mov edx, dword [rsp + 0x48]
and dl, al
mov eax, dword [rsp + 0x40]
and al, cl
or dl, al
mov byte [rdi - 1], dl
dec r9
jne 0x140234210
mov edx, 0xa1
lea r9, str..crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x28]
mov dword [rsp + 0x20], 0x108
call fcn.1401c3730
mov ecx, r13d
and ecx, 1
call fcn.1401c3af0
lea rcx, [rsp + 0x70]
mov edx, 0x40
call fcn.140001200
movsxd rdx, r15d
mov rcx, r14
call fcn.140001200
mov rcx, r14
call fcn.1401d5d50
movsxd rdx, dword [rsp + 0x50]
mov rcx, r12
call fcn.140001200
mov rcx, r12
call fcn.1401d5d50
mov dword [rsp + 0x48], r13d
not r13d
mov dword [rsp + 0x40], r13d
mov eax, dword [rsp + 0x48]
and eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
or eax, ecx
jmp 0x140234305
mov edx, 0xa1
lea r9, [0x1403b2e38]
mov ecx, 4
lea r8d, [rdx - 0x28]
mov dword [rsp + 0x20], 0x99
call fcn.1401c3730
mov eax, r14d
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1402806f0
mov rbx, qword [rsp + 0x150]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret