Function at 0x140135ba0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x2b0]
mov eax, 0x3b0
call fcn.1400fe1d0
sub rsp, rax
mov rax, qword [0x14025ef38]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov rax, qword [rbp + 0x310]
mov r15d, 0x28
mov rbx, qword [rbp + 0x320]
mov rdi, r8
mov qword [rsp + 0x60], rax
mov r14, rcx
mov rax, qword [rbp + 0x328]
mov esi, 0x40
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x68], r9
mov qword [rbp - 0x68], r8
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x5c], r15d
mov dword [rsp + 0x24], 8
mov byte [rsp + 0x20], 1
cmp rbx, 0x100000
jb 0x140135c44
lea r8, str.data_plus_mac_plus_padding_size___1024__1024
mov edx, 0x1c7
lea rcx, [0x140272400]
call fcn.1400d11c0
mov rcx, r14
mov qword [rsp + 0x3a8], r12
call fcn.140115180
mov rcx, rax
call fcn.1400cae90
mov ecx, eax
mov r13d, 0x20
cmp eax, 0x2a1
jg 0x140135d3c
je 0x140135d24
cmp eax, 4
je 0x140135ce5
cmp eax, esi
je 0x140135cb6
cmp eax, 0x2a0
jne 0x140135d49
lea rcx, [rbp - 0x30]
call fcn.14013d280
test eax, eax
jle 0x1401364ba
lea rax, [0x1401366f0]
mov r8d, 8
lea r12, [0x14013d730]
mov ecx, r13d
jmp 0x140135dd1
lea rcx, [rbp - 0x30]
call fcn.14013baf0
test eax, eax
jle 0x1401364ba
lea rax, [0x140136660]
mov r8d, 8
lea r12, [0x14013be00]
mov ecx, shutdown
jmp 0x140135dd1
lea rcx, [rbp - 0x30]
call fcn.140142240
test eax, eax
jle 0x1401364ba
mov r15d, 0x30
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x5c], r15d
lea rax, [0x1401365e0]
lea r12, [0x140142520]
mov r8d, 8
mov ecx, reloc.WS2_32.dll_recv
jmp 0x140135dd1
lea rcx, [rbp - 0x30]
call fcn.14013e860
test eax, eax
jle 0x1401364ba
mov ecx, 0x30
jmp 0x140135db3
sub ecx, 0x2a2
je 0x140135da0
cmp ecx, 1
je 0x140135d74
lea r8, [0x14027238c]
mov edx, 0x209
lea rcx, [0x140272410]
call fcn.1400d11c0
test rdi, rdi
je 0x1401364ba
xor eax, eax
mov qword [rdi], rax
jmp 0x1401364ba
lea rcx, [rbp - 0x30]
call fcn.14013d220
test eax, eax
jle 0x1401364ba
lea rax, [0x1401366f0]
mov r8d, 8
lea r12, [0x14013d730]
mov ecx, 0x1c
jmp 0x140135dd1
lea rcx, [rbp - 0x30]
call fcn.14013e8f0
test eax, eax
jle 0x1401364ba
mov ecx, esi
mov r8d, reloc.WS2_32.dll_recv
lea r12, [0x14013f040]
mov dword [rsp + 0x24], r8d
lea rax, [0x1401367d0]
mov esi, 0x80
mov qword [rsp + 0x50], rax
mov r14d, recv
movzx eax, byte [rbp + 0x338]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x2c], r14d
test al, al
je 0x140135e08
mov r14d, dword [rbp + 0x330]
add r14d, 0xb
add r14d, r15d
mov dword [rsp + 0x2c], r14d
mov r15d, dword [rbp + 0x318]
test al, al
mov edx, 2
mov r10d, 6
cmovne r10d, edx
mov eax, ebx
sub eax, ecx
mov dword [rsp + 0x40], r10d
dec eax
xor edx, edx
add eax, r14d
sub r15d, ecx
add eax, r8d
add r15d, r14d
add eax, esi
xor r11d, r11d
div esi
xor edx, edx
mov ecx, r11d
mov r9d, eax
mov edi, r11d
mov eax, r15d
div esi
mov dword [rsp + 0x38], edx
xor edx, edx
mov dword [rsp + 0x70], eax
lea eax, [r15 + r8]
div esi
mov dword [rsp + 0x74], eax
movzx eax, byte [rbp + 0x338]
test al, al
setne cl
lea edx, [rcx + r10]
mov ecx, r9d
sub ecx, r10d
cmp r9d, edx
jbe 0x140135e87
mov edi, ecx
imul edi, esi
cmp r9d, edx
cmovbe ecx, r11d
lea r15d, [r15*8]
mov dword [rsp + 0x34], ecx
test al, al
jne 0x140135f84
mov r8d, esi
lea rcx, [rbp + 0x100]
xor edx, edx
lea r15d, [r15 + rsi*8]
call fcn.1401a1180
mov ebx, dword [rbp + 0x330]
cmp ebx, 0x80
jbe 0x140135eda
lea r8, str.mac_secret_length___sizeof_hmac_pad_
mov edx, 0x271
lea rcx, str.._ssl_s3_cbc.c
call fcn.1400d11c0
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0x100]
mov r8, rbx
call fcn.1401a0ad0
movdqa xmm2, xmmword [0x140200e50]
mov edx, r13d
nop dword [rax + rax]
lea eax, [rdx - 0x20]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
lea eax, [rdx - 0x10]
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x100], xmm1
lea eax, [rdx + 0x10]
add edx, 0x40
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
lea eax, [rdx - 0x20]
cmp eax, esi
jb 0x140135f00
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x30]
call r12
mov r8d, dword [rsp + 0x24]
mov eax, r15d
lea rcx, [rbp + 0xb0]
shr eax, 0x10
mov ebx, r15d
mov dword [rsp + 0x58], eax
xor edx, edx
shr ebx, 0x18
mov eax, r15d
shr eax, 8
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x30], eax
cmp byte [rsp + 0x20], dl
je 0x140135fef
lea eax, [r8 - 4]
mov r8d, eax
mov ebx, eax
call fcn.1401a1180
mov edx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x3c]
mov byte [rbp + rbx + 0xb0], al
mov eax, dword [rsp + 0x58]
lea ecx, [rdx - 3]
mov byte [rbp + rcx + 0xb0], al
lea ecx, [rdx - 2]
mov eax, dword [rsp + 0x30]
mov byte [rbp + rcx + 0xb0], al
lea eax, [rdx - 1]
jmp 0x140136021
call fcn.1401a1180
mov edx, dword [rsp + 0x24]
lea ecx, [rdx - 6]
lea eax, [rdx - 5]
mov byte [rbp + rax + 0xb0], bl
mov eax, dword [rsp + 0x58]
mov byte [rbp + rcx + 0xb0], al
lea ecx, [rdx - 7]
mov eax, dword [rsp + 0x30]
mov byte [rbp + rcx + 0xb0], al
lea eax, [rdx - 8]
mov byte [rbp + rax + 0xb0], r15b
test edi, edi
je 0x140136160
cmp byte [rbp + 0x338], 0
je 0x1401360e0
cmp r14d, esi
jbe 0x1401364ba
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x30]
mov ebx, r14d
sub ebx, esi
call r12
mov edx, esi
lea rcx, [rbp + 0x180]
add rdx, qword [rsp + 0x68]
mov r8d, ebx
mov r15d, ebx
call fcn.1401a0ad0
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x180]
mov r8d, esi
add rcx, r15
sub r8d, ebx
call fcn.1401a0ad0
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x30]
call r12
xor edx, edx
mov eax, edi
div esi
mov ebx, 1
lea r12d, [rax - 1]
cmp r12d, ebx
jbe 0x140136160
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0x60]
nop dword [rax + rax]
mov edx, ebx
lea rcx, [rbp - 0x30]
imul edx, esi
sub rdx, r15
add rdx, r14
call r13
inc ebx
cmp ebx, r12d
jb 0x1401360c0
mov r14d, dword [rsp + 0x2c]
jmp 0x14013615a
mov rcx, qword [rsp + 0x68]
lea r8d, [rsi - 0xd]
mov rdx, qword [rsp + 0x60]
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
mov dword [rbp + 0x188], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x18d]
mov byte [rbp + 0x18c], al
movsd qword [rbp + 0x180], xmm0
call fcn.1401a0ad0
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x30]
call r12
xor edx, edx
mov eax, edi
div esi
mov ebx, 1
mov r15d, eax
cmp eax, ebx
jbe 0x140136160
mov r13, qword [rsp + 0x60]
nop
mov ecx, ebx
lea rdx, [r13 - 0xd]
imul ecx, esi
add rdx, rcx
lea rcx, [rbp - 0x30]
call r12
inc ebx
cmp ebx, r15d
jb 0x140136140
mov r13d, 0x20
mov ecx, dword [rsp + 0x34]
xorps xmm0, xmm0
mov eax, dword [rsp + 0x40]
add eax, ecx
mov dword [rsp + 0x30], eax
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
cmp ecx, eax
ja 0x14013641d
mov edx, dword [rsp + 0x38]
mov eax, edx
shr eax, 0x1f
mov dword [rsp + 0x40], eax
movaps xmmword [rsp + 0x390], xmm6
lea eax, [rdx + 1]
shr eax, 0x1f
mov dword [rsp + 0x2c], eax
mov eax, esi
sub eax, dword [rsp + 0x24]
mov dword [rsp + 0x3c], eax
nop
mov r13d, dword [rsp + 0x24]
lea r11, [rbp + 0x200]
mov eax, ecx
xor eax, dword [rsp + 0x70]
lea r15d, [rax - 1]
not eax
shr eax, 0x1f
shr r15d, 0x1f
and r15b, al
mov eax, ecx
xor eax, dword [rsp + 0x74]
neg r15b
lea ebx, [rax - 1]
not eax
shr eax, 0x1f
shr ebx, 0x1f
and bl, al
neg bl
movsx eax, bl
movzx r12d, bl
not r12b
movd xmm6, eax
xor eax, eax
mov r9d, eax
punpcklbw xmm6, xmm6
movzx eax, r12b
punpcklwd xmm6, xmm6
or al, r15b
pshufd xmm6, xmm6, 0
mov byte [rsp + 0x20], al
xor r10b, r10b
mov ecx, edi
cmp edi, r14d
jae 0x140136236
mov rax, qword [rsp + 0x68]
jmp 0x14013624f
mov eax, r14d
add rax, qword [rbp + 0x320]
cmp rcx, rax
jae 0x140136254
mov rcx, qword [rsp + 0x60]
mov eax, edi
sub eax, r14d
movzx r10d, byte [rax + rcx]
mov eax, dword [rsp + 0x40]
mov ecx, r9d
sub ecx, edx
inc edi
mov r8d, ecx
mov edx, r9d
shr r8d, 0x1f
xor r8b, al
shr edx, 0x1f
xor al, dl
or r8b, al
lea eax, [rcx - 1]
shr eax, 0x1f
xor r8b, dl
xor al, byte [rsp + 0x2c]
dec r8b
and r8b, r15b
movzx ecx, dl
xor cl, byte [rsp + 0x2c]
or al, cl
movzx ecx, r8b
xor al, dl
not cl
dec al
and cl, r10b
and al, r15b
and r8b, 0x80
not al
or cl, r8b
and al, cl
and al, byte [rsp + 0x20]
cmp r9d, dword [rsp + 0x3c]
jb 0x1401362cd
mov ecx, r9d
and al, r12b
sub ecx, esi
add ecx, r13d
movzx edx, byte [rbp + rcx + 0xb0]
and dl, bl
or al, dl
mov edx, dword [rsp + 0x38]
inc r9d
mov byte [r11], al
inc r11
cmp r9d, esi
jb 0x140136225
lea rdx, [rbp + 0x200]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x48]
lea rdx, [rbp + 0x200]
lea rcx, [rbp - 0x30]
call qword [rsp + 0x50]
mov r15d, dword [rsp + 0x28]
xor eax, eax
mov edx, eax
lea r13d, [rax + 0x20]
cmp r15d, 0x40
jb 0x1401363cb
mov r8d, r15d
mov r9d, r13d
and r8d, 0xffffffc0
mov eax, edx
add edx, 0x40
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
lea eax, [r9 - 0x10]
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
mov eax, r9d
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
lea eax, [r9 + 0x10]
add r9d, 0x40
movdqu xmm0, xmmword [rbp + rax + 0xc0]
movdqu xmm1, xmmword [rbp + rax + 0x200]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xc0], xmm1
cmp edx, r8d
jb 0x140136322
cmp edx, r15d
jae 0x1401363fb
mov r8d, r15d
mov ecx, edx
sub r8d, edx
nop dword [rax + rax]
movzx eax, byte [rbp + rcx + 0x200]
lea rcx, [rcx + 1]
and al, bl
or byte [rbp + rcx + 0xbf], al
sub r8, 1
jne 0x1401363e0
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x38]
inc ecx
mov dword [rsp + 0x34], ecx
cmp ecx, dword [rsp + 0x30]
jbe 0x1401361c0
movaps xmm6, xmmword [rsp + 0x390]
jmp 0x140136422
mov r15d, dword [rsp + 0x28]
lea rcx, [rbp - 0x60]
call fcn.1400ec7a0
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp - 0x60]
xor r8d, r8d
mov rdx, qword [rdx]
call fcn.1400ecaa0
test eax, eax
jle 0x1401364b1
cmp byte [rbp + 0x338], 0
je 0x1401364e5
mov ebx, dword [rsp + 0x5c]
lea rcx, [rbp + 0x100]
mov r8d, ebx
mov edx, 0x5c
call fcn.1401a1180
mov r8d, dword [rbp + 0x330]
lea rcx, [rbp - 0x60]
mov rdx, qword [rbp - 0x80]
call fcn.1400eccf0
test eax, eax
jle 0x1401364b1
mov r8d, ebx
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x60]
call fcn.1400eccf0
test eax, eax
jle 0x1401364b1
mov r8d, r15d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x60]
call fcn.1400eccf0
test eax, eax
jg 0x14013659d
lea rcx, [rbp - 0x60]
call fcn.1400ec7b0
xor eax, eax
mov r12, qword [rsp + 0x3a8]
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.1400fe230
add rsp, 0x3b0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
movdqa xmm2, xmmword [0x140200e60]
nop dword [rax]
lea eax, [r13 - 0x20]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
lea eax, [r13 - 0x10]
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
mov eax, r13d
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x100], xmm1
lea eax, [r13 + 0x10]
add r13d, 0x40
movdqu xmm0, xmmword [rbp + rax + 0x100]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x100], xmm0
lea eax, [r13 - 0x20]
cmp eax, esi
jb 0x1401364f0
mov r8d, esi
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x60]
call fcn.1400eccf0
test eax, eax
jle 0x1401364b1
mov r8d, r15d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x60]
call fcn.1400eccf0
test eax, eax
jle 0x1401364b1
mov rdx, qword [rbp - 0x70]
lea r8, [rsp + 0x78]
lea rcx, [rbp - 0x60]
call fcn.1400ed0f0
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x1401365bf
mov ecx, dword [rsp + 0x78]
mov qword [rdx], rcx
lea rcx, [rbp - 0x60]
call fcn.1400ec7b0
mov eax, 1
jmp 0x1401364bc