Function at 0x180229a10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x2a0]
sub rsp, 0x3a0
mov rax, qword [0x18050a0d0]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov rdi, qword [rbp + 0x310]
mov rax, qword [rbp + 0x300]
mov r13, qword [rbp + 0x318]
mov ebx, 8
mov qword [rsp + 0x68], r9
mov r15, r8
mov qword [rbp - 0x78], r8
mov qword [rsp + 0x78], rdx
mov r14, rcx
mov qword [rbp - 0x80], rcx
mov qword [rsp + 0x48], rax
mov esi, 0x40
mov dword [rsp + 0x28], ebx
mov byte [rsp + 0x20], 1
cmp rdi, 0x100000
jb 0x180229aa1
lea r8, str.data_plus_mac_plus_padding_size___10241024
lea rcx, str.Z:metasploit_payloadscmeterpreterdepslibressl_ssl_s3_cbc.c
mov edx, 0x1a1
call fcn.1801734c0
mov rcx, r14
mov qword [rsp + 0x398], r12
call fcn.18019dfc0
mov rcx, rax
call fcn.180189760
mov ecx, eax
cmp eax, 0x2a1
jg 0x180229b99
je 0x180229b5a
cmp eax, 4
je 0x180229b2e
cmp eax, esi
je 0x180229b07
cmp eax, 0x2a0
jne 0x180229ba5
lea rcx, [rbp - 0x40]
call fcn.1801b27e0
mov r12d, 0x20
lea r10, [0x18022a480]
mov dword [rsp + 0x24], r12d
lea r9, [0x1801b2840]
jmp 0x180229c1f
lea rcx, [rbp - 0x40]
call fcn.1801afb60
mov r12d, reloc.WS2_32.dll_sendto
lea r10, [0x18022a3f0]
mov dword [rsp + 0x24], r12d
lea r9, [0x1801afbb0]
jmp 0x180229c1f
lea rcx, [rbp - 0x40]
call fcn.1801ae350
mov r12d, reloc.WS2_32.dll_recv
lea r10, [0x18022a370]
mov dword [rsp + 0x24], r12d
lea r9, [0x1801aee10]
mov byte [rsp + 0x20], 0
jmp 0x180229c1f
lea rcx, [rbp - 0x40]
call fcn.1801b3a70
lea rax, [0x18022a560]
mov r12d, getprotobyname
mov qword [rsp + 0x40], rax
lea rax, [0x1801b4120]
mov ebx, reloc.WS2_32.dll_recv
mov dword [rsp + 0x24], r12d
lea esi, [r12 + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
jmp 0x180229c29
sub ecx, 0x2a2
je 0x180229bf3
dec ecx
je 0x180229bcf
lea r8, [0x18031972c]
lea rcx, str.Z:metasploit_payloadscmeterpreterdepslibressl_ssl_s3_cbc.c
mov edx, 0x1d1
call fcn.1801734c0
test r15, r15
je 0x180229bc8
xor r14d, r14d
mov qword [r15], r14
xor eax, eax
jmp 0x18022a1e8
lea rcx, [rbp - 0x40]
call fcn.1801b2450
mov r12d, 0x1c
lea r10, [0x18022a480]
mov dword [rsp + 0x24], r12d
lea r9, [0x1801b2840]
jmp 0x180229c1f
lea rcx, [rbp - 0x40]
call fcn.1801b4090
mov ebx, reloc.WS2_32.dll_recv
mov r12d, esi
mov dword [rsp + 0x24], esi
lea r10, [0x18022a560]
lea r9, [0x1801b4120]
mov dword [rsp + 0x28], ebx
mov esi, 0x80
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x30], r9
mov ecx, dword [rbp + 0x308]
xor edx, edx
mov eax, edi
sub eax, r12d
sub ecx, r12d
xor r14d, r14d
add eax, 0xc
add ecx, 0xd
mov dword [rsp + 0x38], r14d
add eax, ebx
mov edi, r14d
add eax, esi
div esi
xor edx, edx
mov r8d, eax
mov eax, ecx
div esi
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x60], edx
xor edx, edx
lea eax, [rcx + rbx]
div esi
mov dword [rsp + 0x58], eax
cmp r8d, 6
jbe 0x180229c7d
lea edi, [r8 - 6]
mov dword [rsp + 0x38], edi
imul edi, esi
lea r15d, [rcx + rsi]
mov eax, esi
lea rcx, [rbp + 0xf0]
mov r8d, esi
xor edx, edx
shl r15d, 3
mov qword [rsp + 0x70], rax
call fcn.180231610
mov ebx, dword [rbp + 0x320]
cmp ebx, 0x80
jbe 0x180229cc3
lea r8, str.mac_secret_length___sizeof_hmac_pad_
lea rcx, str.Z:metasploit_payloadscmeterpreterdepslibressl_ssl_s3_cbc.c
mov edx, 0x212
call fcn.1801734c0
lea rcx, [rbp + 0xf0]
mov r8, rbx
mov rdx, r13
call fcn.180230800
mov edx, r14d
test esi, esi
je 0x180229d5c
cmp esi, 0x20
jb 0x180229d39
movdqa xmm1, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj_]
mov eax, esi
mov r8d, esi
and eax, 0x1f
sub r8d, eax
nop dword [rax + rax]
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0xf0]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0xf0], xmm0
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm0, xmmword [rbp + rax + 0xf0]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0xf0], xmm0
cmp edx, r8d
jb 0x180229d00
cmp edx, esi
jae 0x180229d5c
mov eax, edx
lea rcx, [rbp + 0xf0]
add rcx, rax
mov eax, esi
sub eax, edx
mov edx, eax
nop
xor byte [rcx], 0x36
lea rcx, [rcx + 1]
dec rdx
jne 0x180229d50
lea rdx, [rbp + 0xf0]
lea rcx, [rbp - 0x40]
call qword [rsp + gethostbyaddr]
xor edx, edx
lea rcx, [rbp + 0xa0]
cmp byte [rsp + 0x20], r14b
je 0x180229dc3
mov r13d, dword [rsp + 0x28]
lea eax, [r13 - 4]
mov r8d, eax
mov ebx, eax
call fcn.180231610
mov eax, r15d
mov edx, r15d
shr eax, 0x18
shr edx, 0x10
mov byte [rbp + rbx + 0xa0], al
lea eax, [r13 - 3]
mov byte [rbp + rax + 0xa0], dl
lea eax, [r13 - 2]
mov edx, r15d
shr edx, 8
mov byte [rbp + rax + 0xa0], dl
lea eax, [r13 - 1]
jmp 0x180229e07
mov r13d, dword [rsp + 0x28]
mov r8d, r13d
call fcn.180231610
lea eax, [r13 - 5]
mov edx, r15d
shr edx, 0x18
mov byte [rbp + rax + 0xa0], dl
lea eax, [r13 - 6]
mov edx, r15d
shr edx, 0x10
mov byte [rbp + rax + 0xa0], dl
lea eax, [r13 - 7]
mov edx, r15d
shr edx, 8
mov byte [rbp + rax + 0xa0], dl
lea eax, [r13 - 8]
mov byte [rbp + rax + 0xa0], r15b
test edi, edi
je 0x180229e9f
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x48]
lea r8d, [rsi - 0xd]
mov eax, dword [rcx + 8]
movsd xmm0, qword [rcx]
movsd qword [rbp + 0x1f0], xmm0
mov dword [rbp + 0x1f8], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x1fd]
mov byte [rbp + 0x1fc], al
call fcn.180230800
mov r13, qword [rsp + 0x30]
lea rdx, [rbp + 0x1f0]
lea rcx, [rbp - 0x40]
call r13
xor edx, edx
mov eax, edi
div esi
cmp eax, 1
jbe 0x180229ea4
mov r12, qword [rsp + 0x48]
mov ebx, esi
lea r15d, [rax - 1]
nop dword [rax]
mov eax, ebx
lea rdx, [r12 - 0xd]
lea rcx, [rbp - 0x40]
add rdx, rax
call r13
add ebx, esi
dec r15
jne 0x180229e80
mov r12d, dword [rsp + 0x24]
jmp 0x180229ea4
mov r13, qword [rsp + 0x30]
mov r15d, dword [rsp + 0x38]
xor eax, eax
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
lea eax, [r15 + 6]
mov dword [rsp + 0x64], eax
cmp r15d, eax
ja 0x18022a0e5
movaps xmmword [rsp + 0x380], xmm6
nop dword [rax]
mov ebx, r15d
mov r11d, r15d
mov r8d, r14d
xor ebx, dword [rsp + 0x58]
xor r11d, dword [rsp + 0x50]
dec ebx
dec r11d
sar ebx, 0x1f
sar r11d, 0x1f
movsx eax, bl
movd xmm6, eax
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
test esi, esi
je 0x18022a009
mov r12d, dword [rsp + 0x60]
movzx r15d, bl
mov eax, esi
sub eax, dword [rsp + 0x28]
not r15b
lea r10, [rbp + 0x170]
movzx r13d, r15b
mov r14d, eax
or r13b, r11b
neg r12d
xor r9b, r9b
mov eax, edi
cmp edi, 0xd
jae 0x180229f76
mov rcx, qword [rsp + 0x68]
movzx r9d, byte [rax + rcx]
jmp 0x180229f93
mov rcx, qword [rbp + 0x310]
add rcx, 0xd
cmp rax, rcx
jae 0x180229f93
mov rax, qword [rsp + 0x48]
lea ecx, [rdi - 0xd]
movzx r9d, byte [rcx + rax]
lea edx, [r12 + r8]
inc edi
mov ecx, edx
not ecx
sar ecx, 0x1f
and cl, r11b
movzx eax, cl
and cl, 0x80
not al
and al, r9b
or al, cl
lea ecx, [rdx - 1]
not ecx
sar ecx, 0x1f
and cl, r11b
not cl
and al, cl
and al, r13b
cmp r8d, r14d
jb 0x180229fe5
mov ecx, r8d
sub ecx, esi
add ecx, dword [rsp + 0x28]
movzx edx, byte [rbp + rcx + 0xa0]
movzx ecx, r15b
and dl, bl
and cl, al
movzx eax, dl
or al, cl
inc r8d
mov byte [r10], al
inc r10
cmp r8d, esi
jb 0x180229f60
mov r12d, dword [rsp + 0x24]
mov r15d, dword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
xor r14d, r14d
lea rdx, [rbp + 0x170]
lea rcx, [rbp - 0x40]
call r13
lea rdx, [rbp + 0x170]
lea rcx, [rbp - 0x40]
call qword [rsp + 0x40]
mov edx, r14d
test r12d, r12d
je 0x18022a0ca
cmp r12d, 0x20
jb 0x18022a097
mov eax, r12d
mov r8d, r12d
and eax, 0x1f
sub r8d, eax
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0xb0]
movdqu xmm1, xmmword [rbp + rax + 0x170]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xb0], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm0, xmmword [rbp + rax + 0xb0]
movdqu xmm1, xmmword [rbp + rax + 0x170]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xb0], xmm1
cmp edx, r8d
jb 0x18022a044
cmp edx, r12d
jae 0x18022a0ca
mov r8d, r12d
mov ecx, edx
sub r8d, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rbp + rcx + 0x170]
lea rcx, [rcx + 1]
and al, bl
or byte [rbp + rcx + 0xaf], al
dec r8
jne 0x18022a0b0
inc r15d
mov dword [rsp + 0x38], r15d
cmp r15d, dword [rsp + 0x64]
jbe 0x180229f00
movaps xmm6, xmmword [rsp + 0x380]
lea rcx, [rbp - 0x70]
call fcn.1801704b0
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp - 0x70]
mov rdx, qword [rdx]
xor r8d, r8d
call fcn.18016ff60
test eax, eax
jne 0x18022a115
lea rcx, [rbp - 0x70]
call fcn.1801701b0
xor eax, eax
jmp 0x18022a1e8
test esi, esi
je 0x18022a18f
cmp esi, 0x20
jb 0x18022a16c
movdqa xmm1, xmmword [0x180360e40]
mov eax, esi
mov edx, esi
and eax, 0x1f
sub edx, eax
nop
mov eax, r14d
movdqu xmm0, xmmword [rbp + rax + 0xf0]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0xf0], xmm0
lea eax, [r14 + 0x10]
add r14d, 0x20
movdqu xmm0, xmmword [rbp + rax + 0xf0]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0xf0], xmm0
cmp r14d, edx
jb 0x18022a130
cmp r14d, esi
jae 0x18022a18f
mov eax, r14d
lea rcx, [rbp + 0xf0]
add rcx, rax
sub esi, r14d
mov eax, esi
xor byte [rcx], 0x6a
lea rcx, [rcx + 1]
dec rax
jne 0x18022a183
mov r8, qword [rsp + 0x70]
lea rdx, [rbp + 0xf0]
lea rcx, [rbp - 0x70]
call fcn.1801701a0
lea rdx, [rbp + 0xb0]
lea rcx, [rbp - 0x70]
mov r8d, r12d
call fcn.1801701a0
mov rdx, qword [rsp + 0x78]
lea r8, [rsp + 0x5c]
lea rcx, [rbp - 0x70]
call fcn.18016fe50
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x18022a1da
mov eax, dword [rsp + 0x5c]
mov qword [rcx], rax
lea rcx, [rbp - 0x70]
call fcn.1801701b0
mov eax, 1
mov r12, qword [rsp + 0x398]
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.180243450
add rsp, 0x3a0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret