Function at 0x140133170
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
xor esi, esi
mov qword [rbp - 0x60], 2
mov r14, r8
mov dword [rbp + 0x60], esi
shr r14, 3
xor edi, edi
mov r15, r9
mov dword [rsp + 0x38], esi
mov rbx, rdx
lea eax, [r14 - 0x14]
test eax, 0xfffffff3
jne 0x14013325a
cmp r14d, 0x18
je 0x14013325a
test r9, r9
jne 0x140133202
cmp r14d, 0x14
jne 0x1401331e0
call fcn.1400b4690
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013320d
cmp r14d, 0x1c
jne 0x1401331f4
call fcn.1400b46a0
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013320d
call fcn.1400b46b0
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013320d
mov rcx, r9
call fcn.140060870
mov r14d, eax
mov rcx, qword [rbp + 0x70]
mov eax, 0x200
cmp rbx, rax
cmovae rax, rbx
add rax, 0x3f
and rax, 0xffffffffffffffc0
mov qword [rbp - 0x78], rax
test rcx, rcx
je 0x14013327c
mov r8, qword [rbp + 0x78]
movsxd rax, r14d
cmp r8, rax
jae 0x14013326c
mov edx, 0x7d
mov dword [rsp + 0x20], 0x55
lea r9, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_dsa_dsa_gen.c
lea ecx, [rdx - 0x73]
lea r8d, [rdx - 0xf]
call fcn.14006b9e0
xor eax, eax
add rsp, 0x118
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, rcx
cmova r8, rax
lea rcx, [rbp - 0x10]
call fcn.1401757c0
call fcn.14012ba10
mov qword [rsp + 0x30], rax
mov rbx, rax
test rax, rax
je 0x1401333bc
call fcn.1400f66d0
mov qword [rsp + 0x40], rax
mov rdi, rax
test rax, rax
je 0x1401333bc
mov qword [rsp + 0x158], r12
mov rcx, rax
mov qword [rsp + 0x110], r13
call fcn.1400f67b0
mov rcx, rdi
call fcn.1400f6520
mov r13, qword [rsp + 0x40]
mov rdi, rax
mov rcx, r13
call fcn.1400f6520
mov rcx, r13
mov qword [rsp + 0x60], rax
call fcn.1400f6520
mov rcx, r13
mov qword [rbp - 0x70], rax
call fcn.1400f6520
mov rcx, r13
mov qword [rsp + 0x48], rax
call fcn.1400f6520
mov rcx, r13
mov qword [rsp + 0x50], rax
call fcn.1400f6520
mov rcx, r13
mov qword [rbp - 0x58], rax
call fcn.1400f6520
mov rcx, r13
mov qword [rsp + 0x58], rax
call fcn.1400f6520
mov qword [rbp - 0x68], rax
mov r12, rax
test rax, rax
je 0x14013339f
mov rbx, qword [rbp - 0x78]
movsxd rsi, r14d
call fcn.1400c4bb0
mov rdx, rax
lea r8d, [rbx - 1]
mov rcx, r12
call fcn.1400c5690
test eax, eax
je 0x140133397
nop
mov r12, qword [rbp + 0x98]
nop word [rax + rax]
mov r8d, dword [rsp + 0x38]
xor ebx, ebx
cmp qword [rbp + 0x70], rbx
mov rcx, r12
sete bl
xor edx, edx
call fcn.14015d380
inc dword [rsp + 0x38]
test eax, eax
je 0x140133397
cmp qword [rbp + 0x70], 0
jne 0x1401333de
mov edx, r14d
lea rcx, [rbp - 0x10]
call fcn.14006d140
test eax, eax
jg 0x1401333e6
mov esi, dword [rbp + 0x60]
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.1400f63f0
mov r13, qword [rsp + 0x110]
mov r12, qword [rsp + 0x158]
mov rcx, rdi
call fcn.1400f6470
mov rcx, rbx
call fcn.14012b9c0
mov eax, esi
add rsp, 0x118
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rbp + 0x70], 0
mov r8, rsi
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x30]
call fcn.1401757c0
mov r8, rsi
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.1401757c0
lea rax, [rsi - 1]
test rax, rax
js 0x14013341d
nop
add byte [rbp + rax - 0x30], 1
jne 0x14013341d
sub rax, 1
jns 0x140133410
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov rdx, rsi
lea rcx, [rbp - 0x10]
call fcn.1400756b0
test eax, eax
je 0x140133397
mov qword [rsp + 0x28], 0
lea r8, [rbp - 0x50]
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.1400756b0
test eax, eax
je 0x140133397
xor ecx, ecx
test r14d, r14d
jle 0x140133501
cmp r14d, 0x40
jb 0x140133501
mov edx, r14d
and edx, 0x8000003f
jge 0x140133497
dec edx
or edx, 0xffffffc0
inc edx
mov eax, r14d
sub eax, edx
movsxd rdx, eax
nop
movdqu xmm0, xmmword [rsp + rcx + 0x68]
movdqu xmm1, xmmword [rbp + rcx - 0x50]
pxor xmm1, xmm0
movdqu xmmword [rsp + rcx + 0x68], xmm1
movdqu xmm0, xmmword [rsp + rcx + 0x78]
movdqu xmm1, xmmword [rbp + rcx - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rsp + rcx + 0x78], xmm1
movdqu xmm0, xmmword [rbp + rcx - 0x78]
movdqu xmm1, xmmword [rbp + rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x78], xmm1
movdqu xmm0, xmmword [rbp + rcx - 0x68]
movdqu xmm1, xmmword [rbp + rcx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x68], xmm1
add rcx, 0x40
cmp rcx, rdx
jl 0x1401334a0
cmp rcx, rsi
jge 0x140133521
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rsp + rcx + 0x68], al
inc rcx
cmp rcx, rsi
jl 0x140133510
or byte [rsp + 0x68], 0x80
lea rcx, [rsp + 0x68]
mov r8, qword [rsp + 0x48]
mov edx, r14d
or byte [rsp + rsi + 0x67], 1
call fcn.1400c3d50
test rax, rax
je 0x140133397
mov rcx, qword [rsp + 0x48]
mov r9d, ebx
mov r8, r13
mov qword [rsp + 0x20], r12
mov edx, 0x40
call fcn.14015d9c0
test eax, eax
jg 0x14013356f
je 0x140133360
jmp 0x140133397
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 2]
call fcn.14015d380
test eax, eax
je 0x140133397
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 3]
call fcn.14015d380
test eax, eax
je 0x140133397
mov rcx, qword [rbp - 0x78]
lea r15, [rsi - 1]
mov rbx, qword [rbp - 0x70]
dec rcx
movabs rax, 0xcccccccccccccccd
xor r13d, r13d
mul rcx
mov r12, rdx
shr r12, 7
test r13d, r13d
je 0x1401335e1
mov rcx, qword [rbp + 0x98]
mov r8d, r13d
xor edx, edx
call fcn.14015d380
test eax, eax
je 0x140133397
mov rcx, rbx
call fcn.1400c4bf0
xor ebx, ebx
test r12d, r12d
js 0x140133695
mov rax, r15
test r15, r15
js 0x14013360d
nop dword [rax]
add byte [rbp + rax - 0x30], 1
jne 0x14013360d
sub rax, 1
jns 0x140133600
mov rax, qword [rbp + 0x68]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x28], 0
lea rcx, [rbp - 0x30]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov rdx, rsi
call fcn.1400756b0
test eax, eax
je 0x140133397
mov r8, rdi
lea rcx, [rsp + 0x68]
mov edx, r14d
call fcn.1400c3d50
test rax, rax
je 0x140133397
lea r8d, [r14*8]
mov rdx, rdi
imul r8d, ebx
mov rcx, rdi
call fcn.1400c5690
test eax, eax
je 0x140133397
mov rdx, qword [rbp - 0x70]
mov r8, rdi
mov rcx, rdx
call fcn.1400fd950
test eax, eax
je 0x140133397
inc ebx
cmp ebx, r12d
jle 0x1401335f4
mov rdx, qword [rbp - 0x78]
mov rbx, qword [rbp - 0x70]
dec edx
mov rcx, rbx
call fcn.1400c4660
test eax, eax
je 0x140133397
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call fcn.1400c43b0
test rax, rax
je 0x140133397
mov rdx, qword [rsp + 0x50]
mov r8, qword [rbp - 0x68]
mov rcx, rdx
call fcn.1400fd950
test eax, eax
je 0x140133397
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
call fcn.1400c5820
test eax, eax
je 0x140133397
mov rax, qword [rsp + 0x40]
mov r9, rdi
mov r8, qword [rsp + 0x50]
xor ecx, ecx
mov rdx, qword [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.14012b3d0
test eax, eax
je 0x140133397
call fcn.1400c4bb0
mov rdx, qword [rbp - 0x58]
mov r8, rax
mov rcx, rdi
call fcn.1400fd9e0
test eax, eax
je 0x140133397
mov rdx, qword [rsp + 0x50]
mov r8, rdi
mov rcx, qword [rsp + 0x58]
call fcn.1400fd9e0
test eax, eax
je 0x140133397
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rsp + 0x58]
call fcn.1400c3fb0
test eax, eax
js 0x14013378f
mov rax, qword [rbp + 0x98]
mov r9d, 1
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x3f]
call fcn.14015d9c0
test eax, eax
jg 0x1401337ad
jne 0x140133397
inc r13d
cmp r13d, 0x1000
jl 0x1401335c3
mov r15, qword [rbp + 0x68]
mov r13, qword [rsp + 0x40]
jmp 0x140133350
mov rbx, qword [rbp + 0x98]
mov edx, 2
mov rcx, rbx
lea r8d, [rdx - 1]
call fcn.14015d380
test eax, eax
je 0x140133397
call fcn.1400c4bb0
mov r15, qword [rsp + 0x58]
mov r8, rax
mov r12, qword [rbp - 0x68]
mov rdx, r15
mov rcx, r12
call fcn.1400fd9e0
test eax, eax
je 0x140133397
mov r14, qword [rsp + 0x40]
mov r8, r12
mov r9, qword [rsp + 0x48]
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], r14
call fcn.14012b3d0
test eax, eax
je 0x140133397
mov edx, 2
mov rcx, r12
call fcn.1400c4ae0
test eax, eax
je 0x140133397
mov rcx, qword [rsp + 0x30]
mov r8, r14
mov rdx, r15
call fcn.14012baa0
test eax, eax
je 0x140133397
mov rax, qword [rsp + 0x30]
mov r9, r15
mov rcx, qword [rsp + 0x60]
mov r8, rdi
mov qword [rsp + 0x28], rax
mov rdx, r12
mov qword [rsp + 0x20], r14
call fcn.140129c50
test eax, eax
je 0x140133397
nop dword [rax]
mov rcx, qword [rsp + 0x60]
call fcn.1400c4600
test eax, eax
je 0x1401338c7
call fcn.1400c4bb0
mov r8, rax
mov rdx, r12
mov rcx, r12
call fcn.1400fd950
test eax, eax
je 0x140133397
mov rax, qword [rsp + 0x30]
mov r9, r15
mov rcx, qword [rsp + 0x60]
mov r8, rdi
inc dword [rbp - 0x60]
mov rdx, r12
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
call fcn.140129c50
test eax, eax
jne 0x140133870
jmp 0x140133397
mov edx, 3
mov rcx, rbx
lea r8d, [rdx - 2]
call fcn.14015d380
test eax, eax
je 0x140133397
mov dword [rbp + 0x60], 1
nop word [rax + rax]
mov rbx, qword [rbp + 0x50]
mov rcx, qword [rbx + 8]
call fcn.1400c4500
mov rcx, qword [rbx + 0x10]
call fcn.1400c4500
mov rcx, qword [rbx + 0x18]
call fcn.1400c4500
mov rcx, r15
call fcn.1400c4420
mov rcx, qword [rsp + 0x48]
mov qword [rbx + 8], rax
call fcn.1400c4420
mov rcx, qword [rsp + 0x60]
mov qword [rbx + 0x10], rax
call fcn.1400c4420
cmp qword [rbx + 8], 0
mov qword [rbx + 0x18], rax
je 0x14013398c
cmp qword [rbx + 0x10], 0
je 0x14013398c
test rax, rax
je 0x14013398c
mov rax, qword [rbp + 0x88]
test rax, rax
je 0x140133959
mov dword [rax], r13d
mov rax, qword [rbp + 0x90]
test rax, rax
je 0x14013396b
mov rcx, qword [rbp - 0x60]
mov dword [rax], ecx
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x140133397
mov r8, rsi
lea rdx, [rbp - 0x10]
call fcn.1401757c0
jmp 0x140133397
xor esi, esi
jmp 0x14013339a