Function at 0x140151790
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
lea rbp, [rsp - 0x288]
sub rsp, 0x388
mov rbx, qword [rbp + 0x2f0]
mov esi, 0x40
mov byte [rsp + 0x20], 1
mov r14d, 0x28
mov qword [rbp - 0x78], r14
mov rdi, r8
lea r13d, [rsi - 0x38]
cmp rbx, 0x100000
jb 0x14015180f
lea r8d, [rsi + 0x69]
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_ssl_s3_cbc.c
lea rcx, str.Assertion_failed:_data_plus_mac_plus_padding_size___1024__1024
call fcn.14006e830
xor eax, eax
add rsp, 0x388
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x378], r15
call fcn.140061690
mov rcx, rax
call fcn.140061820
mov ecx, eax
cmp eax, 0x2a1
jg 0x140151930
cmp eax, 0x2a1
je 0x1401518f5
cmp eax, 4
je 0x1401518b4
cmp eax, esi
je 0x140151882
cmp eax, 0x2a0
jne 0x14015193d
lea rcx, [rbp + 0x80]
call fcn.14005f4f0
test eax, eax
jle 0x140151962
mov r15d, 0x20
lea rcx, [0x140152320]
mov qword [rsp + 0x30], r15
lea rax, [0x14005f550]
jmp 0x1401519c3
lea rcx, [rbp + 0x80]
call fcn.14005efc0
test eax, eax
jle 0x140151962
mov r15d, reloc.WS2_32.dll_sendto
lea rcx, [0x140152290]
mov qword [rsp + 0x30], r15
lea rax, [0x14005f010]
jmp 0x1401519c3
lea rcx, [rbp + 0x80]
call fcn.1400604b0
test eax, eax
jle 0x140151962
mov r15d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], 0
mov r14d, 0x30
mov qword [rsp + 0x30], r15
mov qword [rbp - 0x78], r14
lea rcx, [0x140152210]
lea rax, [0x1400604f0]
jmp 0x1401519c3
lea rcx, [rbp + 0x80]
call fcn.140100ef0
test eax, eax
jle 0x140151962
mov r15d, 0x30
lea rax, [0x140152400]
mov qword [rsp + 0x38], rax
lea rax, [0x1401018f0]
mov qword [rsp + 0x30], r15
lea esi, [r15 + 0x50]
lea r13d, [r15 - 0x20]
jmp 0x1401519c8
sub ecx, 0x2a2
je 0x140151994
cmp ecx, 1
je 0x140151969
test rdi, rdi
je 0x140151949
mov qword [rdi], 0
mov r8d, 0xea
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_ssl_s3_cbc.c
lea rcx, str.Assertion_failed:_0
call fcn.14006e830
xor eax, eax
jmp 0x1401520de
lea rcx, [rbp + 0x80]
call fcn.14005f160
test eax, eax
jle 0x140151962
mov r15d, 0x1c
lea rcx, [0x140152320]
mov qword [rsp + 0x30], r15
lea rax, [0x14005f550]
jmp 0x1401519c3
lea rcx, [rbp + 0x80]
call fcn.140101860
test eax, eax
jle 0x140151962
mov r15, rsi
mov qword [rsp + 0x30], rsi
mov esi, 0x80
lea rcx, [0x140152400]
lea rax, [0x1401018f0]
lea r13d, [rsi - 0x70]
mov qword [rsp + 0x38], rcx
movzx r11d, byte [rbp + 0x308]
mov qword [rsp + 0x380], r12
mov r12d, reloc.WS2_32.dll_listen
mov qword [rsp + 0x28], rax
test r11b, r11b
je 0x1401519fe
mov r12, qword [rbp + 0x300]
mov r9d, 2
add r12, 0xb
add r12, r14
jmp 0x140151a11
lea rax, [rsi + 0xff]
xor edx, edx
add rax, r15
div rsi
lea r9, [rax + 1]
xor edx, edx
mov qword [rsp + 0x48], r9
lea rax, [rbx - 1]
mov r8, r12
mov rbx, qword [rbp + 0x2e8]
sub r8, r15
add rbx, r8
xor r14d, r14d
mov edi, r14d
lea rcx, [r8 + r13]
add rcx, rsi
add rax, rcx
mov ecx, r14d
div rsi
xor edx, edx
mov r10, rax
mov rax, rbx
div rsi
mov rax, rbx
mov qword [rbp - 0x80], rdx
xor edx, edx
div rsi
xor edx, edx
mov qword [rbp - 0x30], rax
lea rax, [rbx + r13]
div rsi
test r11b, r11b
mov qword [rbp - 0x28], rax
setne cl
lea r8, [rcx + r9]
mov rcx, r10
sub rcx, r9
cmp r10, r8
jbe 0x140151a89
mov rdi, rcx
imul rdi, rsi
cmp r10, r8
cmovbe rcx, r14
lea rbx, [rbx*8]
mov qword [rsp + 0x78], rcx
test r11b, r11b
jne 0x140151b5c
mov r8, rsi
lea rcx, [rbp]
xor edx, edx
lea rbx, [rbx + rsi*8]
call fcn.140174ac0
mov rax, qword [rbp + 0x300]
cmp rax, 0x80
jbe 0x140151ae2
mov r8d, 0x151
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_ssl_s3_cbc.c
lea rcx, str.Assertion_failed:_mac_secret_length___sizeof_hmac_pad_
call fcn.14006e830
jmp 0x1401520d4
mov rdx, qword [rbp + 0x2f8]
lea rcx, [rbp]
mov r8, rax
call fcn.140174c80
movdqa xmm2, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj_]
mov rax, r14
movdqu xmm0, xmmword [rbp + rax]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax], xmm0
movdqu xmm1, xmmword [rbp + rax + 0x10]
pxor xmm1, xmm2
movdqu xmmword [rbp + rax + 0x10], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x20]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x20], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x30]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x30], xmm0
add rax, 0x40
cmp rax, rsi
jb 0x140151b00
lea rdx, [rbp]
lea rcx, [rbp + 0x80]
call qword [rsp + 0x28]
mov rax, rbx
lea rcx, [rsp + 0x50]
shr rax, 0x18
xor edx, edx
mov qword [rsp + 0x60], rax
mov rax, rbx
shr rax, 0x10
mov qword [rsp + 0x68], rax
mov rax, rbx
shr rax, 8
mov qword [rsp + 0x40], rax
cmp byte [rsp + 0x20], r14b
je 0x140151bbc
lea r8, [r13 - 4]
call fcn.140174ac0
mov rax, qword [rsp + 0x60]
mov byte [rsp + r13 + 0x4c], al
mov rax, qword [rsp + 0x68]
mov byte [rsp + r13 + 0x4d], al
mov rax, qword [rsp + 0x40]
mov byte [rsp + r13 + 0x4e], al
mov byte [rsp + r13 + 0x4f], bl
jmp 0x140151be7
mov r8, r13
call fcn.140174ac0
mov rax, qword [rsp + 0x60]
mov byte [rsp + r13 + 0x4b], al
mov rax, qword [rsp + 0x68]
mov byte [rsp + r13 + 0x4a], al
mov rax, qword [rsp + 0x40]
mov byte [rsp + r13 + 0x49], al
mov byte [rsp + r13 + 0x48], bl
test rdi, rdi
je 0x140151d4e
cmp byte [rbp + 0x308], r14b
je 0x140151cbb
cmp r12, rsi
jbe 0x1401520d4
mov rdx, qword [rbp + 0x2d8]
lea rcx, [rbp + 0x80]
mov rbx, r12
sub rbx, rsi
call qword [rsp + 0x28]
mov rdx, qword [rbp + 0x2d8]
lea rcx, [rbp + 0x160]
add rdx, rsi
mov r8, rbx
call fcn.140174c80
mov rax, rsi
lea rcx, [rbp + 0x160]
sub rax, rbx
add rcx, rbx
mov rbx, qword [rbp + 0x2e0]
mov r8, rax
mov rdx, rbx
mov qword [rsp + 0x40], rax
call fcn.140174c80
lea rdx, [rbp + 0x160]
lea rcx, [rbp + 0x80]
call qword [rsp + 0x28]
xor edx, edx
mov rax, rdi
div rsi
lea rcx, [rax - 1]
cmp rcx, 1
jbe 0x140151d4e
add rbx, qword [rsp + 0x40]
lea r14, [rcx - 1]
mov r15, qword [rsp + 0x28]
nop dword [rax]
nop dword [rax + rax]
mov rdx, rbx
lea rcx, [rbp + 0x80]
call r15
add rbx, rsi
sub r14, 1
jne 0x140151ca0
jmp 0x140151d46
mov rcx, qword [rbp + 0x2d8]
lea r8, [rsi - 0xd]
mov rbx, qword [rbp + 0x2e0]
mov rdx, rbx
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
mov dword [rbp + 0x168], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x16d]
mov byte [rbp + 0x16c], al
movsd qword [rbp + 0x160], xmm0
call fcn.140174c80
lea rdx, [rbp + 0x160]
lea rcx, [rbp + 0x80]
call qword [rsp + 0x28]
xor edx, edx
mov rax, rdi
div rsi
cmp rax, 1
jbe 0x140151d4e
mov r15, qword [rsp + 0x28]
lea r14, [rax - 1]
add rbx, 0xfffffffffffffff3
add rbx, rsi
nop dword [rax + rax]
mov rdx, rbx
lea rcx, [rbp + 0x80]
call r15
add rbx, rsi
sub r14, 1
jne 0x140151d30
mov r15, qword [rsp + 0x30]
xor r14d, r14d
mov r8, qword [rsp + 0x78]
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov rax, qword [rsp + 0x48]
add rax, r8
mov qword [rbp - 0x18], rax
cmp r8, rax
ja 0x140152037
mov rcx, qword [rbp - 0x80]
mov r9, qword [rbp + 0x2e0]
mov rax, rcx
shr rax, 0x3f
sub r9, r12
mov qword [rbp - 0x80], rax
mov r10, rcx
lea rdx, [rcx + 1]
movaps xmmword [rsp + 0x360], xmm6
mov rax, rdx
mov qword [rsp + 0x48], rdx
shr rax, 0x3f
not r10
mov qword [rsp + 0x40], rax
mov rax, rsi
sub rax, r13
mov qword [rbp - 0x10], r10
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x51]
sub rax, rsi
mov qword [rbp + 0x2e0], r9
add rax, rcx
add rax, r13
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0x1e1]
add rax, rcx
mov qword [rbp - 0x20], rax
nop dword [rax]
mov rax, r8
xor rax, qword [rbp - 0x30]
lea r13, [rax - 1]
not rax
shr rax, 0x3f
shr r13, 0x3f
and r13b, al
mov rax, r8
xor rax, qword [rbp - 0x28]
neg r13b
lea rbx, [rax - 1]
not rax
shr rax, 0x3f
shr rbx, 0x3f
and bl, al
neg bl
movsx eax, bl
movd xmm6, eax
movzx eax, bl
not al
punpcklbw xmm6, xmm6
mov byte [rsp + 0x20], al
or al, r13b
movzx r15d, byte [rsp + 0x20]
punpcklwd xmm6, xmm6
mov byte [rsp + 0x21], al
pshufd xmm6, xmm6, 0
xor r11b, r11b
cmp rdi, r12
jae 0x140151e76
mov rax, qword [rbp + 0x2d8]
movzx r11d, byte [rdi + rax]
jmp 0x140151e8a
mov rax, qword [rbp + 0x2f0]
add rax, r12
cmp rdi, rax
jae 0x140151e8a
movzx r11d, byte [r9 + rdi]
mov rax, qword [rbp - 0x80]
lea r9, [rdx + r10]
mov rcx, qword [rsp + 0x40]
lea r14, [r10 + 1]
mov r8, r14
mov rdx, r9
shr r8, 0x3f
inc rdi
xor r8b, al
shr rdx, 0x3f
xor al, dl
or r8b, al
mov rax, r10
shr rax, 0x3f
xor r8b, dl
xor al, cl
dec r8b
xor cl, dl
and r8b, r13b
or al, cl
movzx ecx, r8b
xor al, dl
not cl
dec al
and cl, r11b
and al, r13b
and r8b, 0x80
not al
or cl, r8b
and al, cl
and al, byte [rsp + 0x21]
cmp r9, qword [rsp + 0x68]
jb 0x140151f01
mov rcx, qword [rsp + 0x60]
and al, r15b
movzx edx, byte [rcx + r10]
and dl, bl
or al, dl
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rsp + 0x48]
mov r9, qword [rbp + 0x2e0]
mov byte [rcx + r10], al
mov r10, r14
lea rax, [rdx + r14]
cmp rax, rsi
jb 0x140151e60
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x80]
call qword [rsp + 0x28]
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x80]
call qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
xor r14d, r14d
mov ecx, r14d
cmp r15, 0x40
jb 0x140151fed
mov rax, r15
and rax, 0xffffffffffffffc0
nop word [rax + rax]
movdqu xmm0, xmmword [rbp + rcx - 0x70]
movdqu xmm1, xmmword [rbp + rcx + 0x1e0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x70], xmm1
movdqu xmm0, xmmword [rbp + rcx - 0x60]
movdqu xmm1, xmmword [rbp + rcx + 0x1f0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x60], xmm1
movdqu xmm0, xmmword [rbp + rcx - 0x50]
movdqu xmm1, xmmword [rbp + rcx + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x50], xmm1
movdqu xmm0, xmmword [rbp + rcx - 0x40]
movdqu xmm1, xmmword [rbp + rcx + 0x210]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x40], xmm1
add rcx, 0x40
cmp rcx, rax
jb 0x140151f70
cmp rcx, r15
jae 0x140152008
movzx eax, byte [rbp + rcx + 0x1e0]
and al, bl
or byte [rbp + rcx - 0x70], al
inc rcx
cmp rcx, r15
jb 0x140151ff2
mov r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
inc r8
mov r9, qword [rbp + 0x2e0]
mov r10, qword [rbp - 0x10]
mov qword [rsp + 0x78], r8
cmp r8, qword [rbp - 0x18]
jbe 0x140151e00
movaps xmm6, xmmword [rsp + 0x360]
call fcn.140079870
mov rbx, rax
test rax, rax
je 0x1401520cc
mov rcx, qword [rbp + 0x2c0]
call fcn.140061690
mov rdx, rax
xor r8d, r8d
mov rcx, rbx
call fcn.1400793a0
test eax, eax
jle 0x1401520cc
cmp byte [rbp + 0x308], 0
je 0x1401520f6
mov rdi, qword [rbp - 0x78]
lea rcx, [rbp]
mov r8, rdi
mov edx, 0x5c
call fcn.140174ac0
mov r8, qword [rbp + 0x300]
mov rcx, rbx
mov rdx, qword [rbp + 0x2f8]
call fcn.1400795f0
test eax, eax
jle 0x1401520cc
mov r8, rdi
lea rdx, [rbp]
mov rcx, rbx
call fcn.1400795f0
test eax, eax
jle 0x1401520cc
mov r8, r15
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.1400795f0
test eax, eax
jg 0x140152187
mov rcx, rbx
call fcn.140079840
xor eax, eax
mov r12, qword [rsp + 0x380]
mov r15, qword [rsp + 0x378]
add rsp, 0x388
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
movdqa xmm2, xmmword [0x1401dbd50]
nop
movdqu xmm0, xmmword [rbp + r14]
movdqa xmm1, xmm2
pxor xmm0, xmm2
movdqu xmmword [rbp + r14], xmm0
movdqu xmm0, xmmword [rbp + r14 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rbp + r14 + 0x10], xmm1
movdqu xmm0, xmmword [rbp + r14 + 0x20]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rbp + r14 + 0x20], xmm1
movdqu xmm0, xmmword [rbp + r14 + 0x30]
pxor xmm0, xmm2
movdqu xmmword [rbp + r14 + 0x30], xmm0
add r14, 0x40
cmp r14, rsi
jb 0x140152100
mov r8, rsi
lea rdx, [rbp]
mov rcx, rbx
call fcn.1400795f0
test eax, eax
jle 0x1401520cc
mov r8, r15
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.1400795f0
test eax, eax
jle 0x1401520cc
mov rdx, qword [rbp + 0x2c8]
lea r8, [rsp + 0x70]
mov rcx, rbx
call fcn.1400791f0
test eax, eax
je 0x1401521b2
mov rcx, qword [rbp + 0x2d0]
test rcx, rcx
je 0x1401521b2
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
mov rcx, rbx
call fcn.140079840
mov eax, 1
jmp 0x1401520d6