Function at 0x140131870
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 0x14013195a
cmp r14d, 0x18
je 0x14013195a
test r9, r9
jne 0x140131902
cmp r14d, 0x14
jne 0x1401318e0
call fcn.1400b2b10
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013190d
cmp r14d, 0x1c
jne 0x1401318f4
call fcn.1400b2b20
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013190d
call fcn.1400b2b30
mov r15, rax
mov qword [rbp + 0x68], rax
jmp 0x14013190d
mov rcx, r9
call fcn.14005ed40
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 0x14013197c
mov r8, qword [rbp + 0x78]
movsxd rax, r14d
cmp r8, rax
jae 0x14013196c
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.140069ef0
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.140173e20
call fcn.14012a0f0
mov qword [rsp + 0x30], rax
mov rbx, rax
test rax, rax
je 0x140131abc
call fcn.1400f4da0
mov qword [rsp + 0x40], rax
mov rdi, rax
test rax, rax
je 0x140131abc
mov qword [rsp + 0x158], r12
mov rcx, rax
mov qword [rsp + 0x110], r13
call fcn.1400f4e80
mov rcx, rdi
call fcn.1400f4bf0
mov r13, qword [rsp + 0x40]
mov rdi, rax
mov rcx, r13
call fcn.1400f4bf0
mov rcx, r13
mov qword [rsp + 0x60], rax
call fcn.1400f4bf0
mov rcx, r13
mov qword [rbp - 0x70], rax
call fcn.1400f4bf0
mov rcx, r13
mov qword [rsp + 0x48], rax
call fcn.1400f4bf0
mov rcx, r13
mov qword [rsp + 0x50], rax
call fcn.1400f4bf0
mov rcx, r13
mov qword [rbp - 0x58], rax
call fcn.1400f4bf0
mov rcx, r13
mov qword [rsp + 0x58], rax
call fcn.1400f4bf0
mov qword [rbp - 0x68], rax
mov r12, rax
test rax, rax
je 0x140131a9f
mov rbx, qword [rbp - 0x78]
movsxd rsi, r14d
call fcn.1400c3280
mov rdx, rax
lea r8d, [rbx - 1]
mov rcx, r12
call fcn.1400c3d50
test eax, eax
je 0x140131a97
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.14015ba90
inc dword [rsp + 0x38]
test eax, eax
je 0x140131a97
cmp qword [rbp + 0x70], 0
jne 0x140131ade
mov edx, r14d
lea rcx, [rbp - 0x10]
call fcn.14006b5b0
test eax, eax
jg 0x140131ae6
mov esi, dword [rbp + 0x60]
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.1400f4ac0
mov r13, qword [rsp + 0x110]
mov r12, qword [rsp + 0x158]
mov rcx, rdi
call fcn.1400f4b40
mov rcx, rbx
call fcn.14012a0a0
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.140173e20
mov r8, rsi
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.140173e20
lea rax, [rsi - 1]
test rax, rax
js 0x140131b1d
nop
add byte [rbp + rax - 0x30], 1
jne 0x140131b1d
sub rax, 1
jns 0x140131b10
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.140073b30
test eax, eax
je 0x140131a97
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.140073b30
test eax, eax
je 0x140131a97
xor ecx, ecx
test r14d, r14d
jle 0x140131c01
cmp r14d, 0x40
jb 0x140131c01
mov edx, r14d
and edx, 0x8000003f
jge 0x140131b97
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 0x140131ba0
cmp rcx, rsi
jge 0x140131c21
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x50]
xor byte [rsp + rcx + 0x68], al
inc rcx
cmp rcx, rsi
jl 0x140131c10
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.1400c2420
test rax, rax
je 0x140131a97
mov rcx, qword [rsp + 0x48]
mov r9d, ebx
mov r8, r13
mov qword [rsp + 0x20], r12
mov edx, 0x40
call fcn.14015c0d0
test eax, eax
jg 0x140131c6f
je 0x140131a60
jmp 0x140131a97
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 2]
call fcn.14015ba90
test eax, eax
je 0x140131a97
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 3]
call fcn.14015ba90
test eax, eax
je 0x140131a97
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 0x140131ce1
mov rcx, qword [rbp + 0x98]
mov r8d, r13d
xor edx, edx
call fcn.14015ba90
test eax, eax
je 0x140131a97
xor edx, edx
mov rcx, rbx
call fcn.1400c31b0
xor ebx, ebx
test r12d, r12d
js 0x140131d95
mov rax, r15
test r15, r15
js 0x140131d0d
nop
add byte [rbp + rax - 0x30], 1
jne 0x140131d0d
sub rax, 1
jns 0x140131d00
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.140073b30
test eax, eax
je 0x140131a97
mov r8, rdi
lea rcx, [rsp + 0x68]
mov edx, r14d
call fcn.1400c2420
test rax, rax
je 0x140131a97
lea r8d, [r14*8]
mov rdx, rdi
imul r8d, ebx
mov rcx, rdi
call fcn.1400c3d50
test eax, eax
je 0x140131a97
mov rdx, qword [rbp - 0x70]
mov r8, rdi
mov rcx, rdx
call fcn.1400fc020
test eax, eax
je 0x140131a97
inc ebx
cmp ebx, r12d
jle 0x140131cf6
mov rdx, qword [rbp - 0x78]
mov rbx, qword [rbp - 0x70]
dec edx
mov rcx, rbx
call fcn.1400c2d30
test eax, eax
je 0x140131a97
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call fcn.1400c2a80
test rax, rax
je 0x140131a97
mov rdx, qword [rsp + 0x50]
mov r8, qword [rbp - 0x68]
mov rcx, rdx
call fcn.1400fc020
test eax, eax
je 0x140131a97
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
call fcn.1400c3ee0
test eax, eax
je 0x140131a97
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.140129ab0
test eax, eax
je 0x140131a97
call fcn.1400c3280
mov rdx, qword [rbp - 0x58]
mov r8, rax
mov rcx, rdi
call fcn.1400fc0c0
test eax, eax
je 0x140131a97
mov rdx, qword [rsp + 0x50]
mov r8, rdi
mov rcx, qword [rsp + 0x58]
call fcn.1400fc0c0
test eax, eax
je 0x140131a97
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rsp + 0x58]
call fcn.1400c2680
test eax, eax
js 0x140131e8f
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.14015c0d0
test eax, eax
jg 0x140131ead
jne 0x140131a97
inc r13d
cmp r13d, 0x1000
jl 0x140131cc3
mov r15, qword [rbp + 0x68]
mov r13, qword [rsp + 0x40]
jmp 0x140131a50
mov rbx, qword [rbp + 0x98]
mov edx, 2
mov rcx, rbx
lea r8d, [rdx - 1]
call fcn.14015ba90
test eax, eax
je 0x140131a97
call fcn.1400c3280
mov r15, qword [rsp + 0x58]
mov r8, rax
mov r12, qword [rbp - 0x68]
mov rdx, r15
mov rcx, r12
call fcn.1400fc0c0
test eax, eax
je 0x140131a97
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.140129ab0
test eax, eax
je 0x140131a97
mov edx, 2
mov rcx, r12
call fcn.1400c31b0
test eax, eax
je 0x140131a97
mov rcx, qword [rsp + 0x30]
mov r8, r14
mov rdx, r15
call fcn.14012a180
test eax, eax
je 0x140131a97
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.140128330
test eax, eax
je 0x140131a97
nop dword [rax]
mov rcx, qword [rsp + 0x60]
call fcn.1400c2cd0
test eax, eax
je 0x140131fc7
call fcn.1400c3280
mov r8, rax
mov rdx, r12
mov rcx, r12
call fcn.1400fc020
test eax, eax
je 0x140131a97
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.140128330
test eax, eax
jne 0x140131f70
jmp 0x140131a97
mov edx, 3
mov rcx, rbx
lea r8d, [rdx - 2]
call fcn.14015ba90
test eax, eax
je 0x140131a97
mov dword [rbp + 0x60], 1
nop word [rax + rax]
mov rbx, qword [rbp + 0x50]
mov rcx, qword [rbx + 8]
call fcn.1400c2bd0
mov rcx, qword [rbx + 0x10]
call fcn.1400c2bd0
mov rcx, qword [rbx + 0x18]
call fcn.1400c2bd0
mov rcx, r15
call fcn.1400c2af0
mov rcx, qword [rsp + 0x48]
mov qword [rbx + 8], rax
call fcn.1400c2af0
mov rcx, qword [rsp + 0x60]
mov qword [rbx + 0x10], rax
call fcn.1400c2af0
cmp qword [rbx + 8], 0
mov qword [rbx + 0x18], rax
je 0x14013208c
cmp qword [rbx + 0x10], 0
je 0x14013208c
test rax, rax
je 0x14013208c
mov rax, qword [rbp + 0x88]
test rax, rax
je 0x140132059
mov dword [rax], r13d
mov rax, qword [rbp + 0x90]
test rax, rax
je 0x14013206b
mov rcx, qword [rbp - 0x60]
mov dword [rax], ecx
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x140131a97
mov r8, rsi
lea rdx, [rbp - 0x10]
call fcn.140173e20
jmp 0x140131a97
xor esi, esi
jmp 0x140131a9a