Function at 0x1401a1760
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x2c0]
mov eax, 0x3c0
call fcn.1400b2870
sub rsp, rax
mov rax, qword [0x14021e0c0]
xor rax, rsp
mov qword [rbp + 0x290], rax
mov rax, qword [rbp + 0x320]
mov r13d, Ordinal_41
mov rbx, qword [rbp + 0x330]
mov r15d, 8
mov qword [rsp + 0x50], rax
mov rdi, r8
mov rax, qword [rbp + 0x338]
mov r14, rcx
mov qword [rbp - 0x78], rax
mov esi, 0x40
mov qword [rsp + 0x30], r9
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x80], r13
mov qword [rsp + 0x38], r15
mov byte [rsp + 0x20], 1
cmp rbx, 0x100000
jb 0x1401a1805
lea r8d, [rsi + 0x6a]
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_data_plus_mac_plus_padding_size___1024__1024
call fcn.1400c8fb0
mov rcx, r14
mov qword [rsp + 0x3b8], r12
call fcn.1400bf540
mov rcx, rax
call fcn.1400b7b80
mov ecx, eax
cmp eax, 0x2a1
jg 0x1401a1929
cmp eax, 0x2a1
je 0x1401a18e5
cmp eax, 4
je 0x1401a18a7
cmp eax, esi
je 0x1401a1878
cmp eax, 0x2a0
jne 0x1401a1936
lea rcx, [rbp - 0x20]
call fcn.1400bbbb0
test eax, eax
jle 0x1401a2067
mov r12d, reloc.WLDAP32.dll_Ordinal_32
lea rcx, [0x1401a22b0]
mov qword [rsp + 0x48], r12
lea rax, [0x1400bbc20]
jmp 0x1401a19c6
lea rcx, [rbp - 0x20]
call fcn.1401134e0
test eax, eax
jle 0x1401a2067
mov r12d, reloc.WS2_32.dll_sendto
lea rcx, [0x1401a2220]
mov qword [rsp + 0x48], r12
lea rax, [0x140113530]
jmp 0x1401a19c6
lea rcx, [rbp - 0x20]
call fcn.1400c3e40
test eax, eax
jle 0x1401a2067
mov r12d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], 0
mov r13d, Ordinal_50
mov qword [rsp + 0x48], r12
mov qword [rbp - 0x80], r13
lea rcx, [0x1401a21a0]
lea rax, [0x1400c3e90]
jmp 0x1401a19c6
lea rcx, [rbp - 0x20]
call fcn.140113680
test eax, eax
jle 0x1401a2067
mov r12d, Ordinal_50
lea rax, [0x1401a2390]
mov r15d, reloc.WS2_32.dll_recv
mov qword [rsp + 0x40], rax
lea rax, [0x140113d30]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x38], r15
lea esi, [r12 + 0x50]
jmp 0x1401a19cb
sub ecx, 0x2a2
je 0x1401a198f
cmp ecx, 1
je 0x1401a1963
mov r8d, 0xe8
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_0
call fcn.1400c8fb0
test rdi, rdi
je 0x1401a2067
xor r13d, r13d
mov qword [rdi], r13
jmp 0x1401a2067
lea rcx, [rbp - 0x20]
call fcn.1400bb820
test eax, eax
jle 0x1401a2067
mov r12d, Ordinal_33
lea rcx, [0x1401a22b0]
mov qword [rsp + 0x48], r12
lea rax, [0x1400bbc20]
jmp 0x1401a19c6
lea rcx, [rbp - 0x20]
call fcn.140113ca0
test eax, eax
jle 0x1401a2067
mov r15d, reloc.WS2_32.dll_recv
mov qword [rsp + 0x48], rsi
mov r12, rsi
mov qword [rsp + 0x38], r15
lea rcx, [0x1401a2390]
mov esi, 0x80
lea rax, [0x140113d30]
mov qword [rsp + 0x40], rcx
movzx r11d, byte [rbp + 0x348]
mov r14d, reloc.WS2_32.dll_listen
mov qword [rsp + 0x28], rax
test r11b, r11b
je 0x1401a19f1
mov r14, qword [rbp + 0x340]
add r14, 0xb
add r14, r13
mov rdi, qword [rbp + 0x328]
test r11b, r11b
mov eax, 2
mov r10d, 6
cmovne r10d, eax
mov r8, r14
xor edx, edx
mov qword [rsp + 0x70], r10
sub r8, r12
dec rbx
add rdi, r8
xor r13d, r13d
mov ecx, r13d
mov qword [rsp + 0x58], r13
lea rax, [r8 + r15]
add rax, rsi
add rax, rbx
mov ebx, r13d
div rsi
xor edx, edx
mov r9, rax
mov rax, rdi
div rsi
mov qword [rsp + 0x78], rdx
xor edx, edx
mov qword [rbp - 0x70], rax
lea rax, [rdi + r15]
div rsi
test r11b, r11b
mov qword [rbp - 0x68], rax
setne cl
add rcx, r10
cmp r9, rcx
jbe 0x1401a1a76
mov rbx, r9
sub rbx, r10
mov qword [rsp + 0x58], rbx
imul rbx, rsi
lea rdi, [rdi*8]
test r11b, r11b
jne 0x1401a1b34
mov r8, rsi
lea rcx, [rbp + 0x110]
xor edx, edx
lea rdi, [rdi + rsi*8]
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rbp + 0x340]
cmp rax, 0x80
jbe 0x1401a1acb
mov r8d, 0x150
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_mac_secret_length___sizeof_hmac_pad_
call fcn.1400c8fb0
mov rax, qword [rbp + 0x340]
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x110]
mov r8, rax
call sub.VCRUNTIME140.dll_memcpy
movdqa xmm2, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj_]
mov rax, r13
nop dword [rax]
movdqu xmm0, xmmword [rbp + rax + 0x110]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax + 0x110], xmm0
movdqu xmm1, xmmword [rbp + rax + 0x120]
pxor xmm1, xmm2
movdqu xmmword [rbp + rax + 0x120], xmm1
add rax, 0x20
cmp rax, rsi
jb 0x1401a1af0
lea rdx, [rbp + 0x110]
lea rcx, [rbp - 0x20]
call qword [rsp + Ordinal_41]
xor edx, edx
lea rcx, [rbp + 0xc0]
cmp byte [rsp + 0x20], r13b
je 0x1401a1b84
lea r8, [r15 - 4]
call sub.VCRUNTIME140.dll_memset
mov rax, rdi
mov byte [rbp + r15 + 0xbf], dil
shr rax, 0x18
mov byte [rbp + r15 + 0xbc], al
mov rax, rdi
shr rax, 0x10
mov byte [rbp + r15 + 0xbd], al
mov rax, rdi
shr rax, 8
mov byte [rbp + r15 + 0xbe], al
jmp 0x1401a1bc1
mov r8, r15
call sub.VCRUNTIME140.dll_memset
mov rax, rdi
mov byte [rbp + r15 + 0xb8], dil
shr rax, 0x18
mov byte [rbp + r15 + 0xbb], al
mov rax, rdi
shr rax, 0x10
mov byte [rbp + r15 + 0xba], al
mov rax, rdi
shr rax, 8
mov byte [rbp + r15 + 0xb9], al
test rbx, rbx
je 0x1401a1cfc
cmp byte [rbp + 0x348], r13b
je 0x1401a1c76
cmp r14, rsi
jbe 0x1401a2067
mov rdx, qword [rsp + 0x30]
lea rcx, [rbp - 0x20]
mov rdi, r14
sub rdi, rsi
mov qword [rsp + 0x60], rdi
call qword [rsp + Ordinal_41]
mov rdx, qword [rsp + 0x30]
lea rcx, [rbp + 0x190]
add rdx, rsi
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r8, rsi
lea rcx, [rbp + 0x190]
sub r8, rdi
add rcx, rdi
mov rdi, qword [rsp + 0x50]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call qword [rsp + Ordinal_41]
xor edx, edx
mov rax, rbx
div rsi
dec rax
cmp rax, 1
jbe 0x1401a1cfc
sub rdi, qword [rsp + 0x60]
lea r15, [rax - 1]
mov r13, qword [rsp + 0x28]
add rdi, rsi
mov rdx, rdi
lea rcx, [rbp - 0x20]
call r13
add rdi, rsi
sub r15, 1
jne 0x1401a1c61
jmp 0x1401a1cf4
mov rdi, qword [rsp + 0x30]
lea r8, [rsi - 0xd]
mov rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x19d]
mov eax, dword [rdi + 8]
movsd xmm0, qword [rdi]
mov dword [rbp + 0x198], eax
movzx eax, byte [rdi + 0xc]
mov byte [rbp + 0x19c], al
movsd qword [rbp + 0x190], xmm0
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call qword [rsp + Ordinal_41]
xor edx, edx
mov rax, rbx
div rsi
cmp rax, 1
jbe 0x1401a1d01
mov rdi, qword [rsp + 0x50]
lea r15, [rax - 1]
mov r13, qword [rsp + 0x28]
add rdi, 0xfffffffffffffff3
add rdi, rsi
mov rdx, rdi
lea rcx, [rbp - 0x20]
call r13
add rdi, rsi
sub r15, 1
jne 0x1401a1ce1
mov r15, qword [rsp + 0x38]
xor r13d, r13d
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x58]
xor eax, eax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov rax, qword [rsp + 0x70]
add rax, rdx
mov qword [rbp - 0x48], rax
cmp rdx, rax
ja 0x1401a1fc7
mov rcx, qword [rsp + 0x78]
lea r8, [rbp + 0xc1]
mov r9, rcx
movaps xmmword [rsp + 0x3a0], xmm6
shr r9, 0x3f
mov qword [rsp + 0x38], r9
lea rax, [rcx + 1]
shr rax, 0x3f
mov qword [rsp + 0x70], rax
mov rax, rsi
sub rax, r15
mov qword [rbp - 0x60], rax
mov rax, rcx
sub rax, rsi
add rax, r8
or r8, 0xffffffffffffffff
add rax, r15
mov qword [rbp - 0x58], rax
lea rax, [rbp + 0x211]
add rax, rcx
sub r8, rcx
mov qword [rbp - 0x50], rax
mov qword [rsp + 0x60], r8
nop word [rax + rax]
mov rax, rdx
mov r11, r13
xor rax, qword [rbp - 0x70]
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
mov rax, rdx
xor rax, qword [rbp - 0x68]
neg cl
mov qword [rsp + 0x78], rcx
mov r13, rcx
lea r15, [rax - 1]
not rax
shr rax, 0x3f
shr r15, 0x3f
and r15b, al
neg r15b
movsx eax, r15b
movd xmm6, eax
movzx eax, r15b
punpcklbw xmm6, xmm6
not al
or al, cl
punpcklwd xmm6, xmm6
movzx r12d, al
pshufd xmm6, xmm6, 0
xor r10b, r10b
cmp rbx, r14
jae 0x1401a1e31
movzx r10d, byte [rdi + rbx]
jmp 0x1401a1e4d
mov rax, qword [rbp + 0x330]
add rax, r14
cmp rbx, rax
jae 0x1401a1e4d
mov rax, qword [rsp + 0x50]
sub rax, r14
movzx r10d, byte [rax + rbx]
lea rdi, [r8 + r11]
inc rbx
mov r8, r11
lea rcx, [rdi + 1]
shr rcx, 0x3f
xor cl, r9b
shr r8, 0x3f
movzx eax, r8b
xor al, r9b
mov r9, rdi
or cl, al
shr r9, 0x3f
xor cl, r8b
movzx eax, r13b
dec cl
movzx edx, cl
mov rcx, qword [rsp + 0x70]
and edx, eax
xor r9b, cl
movzx eax, r8b
xor al, cl
or r9b, al
movzx eax, dl
xor r9b, r8b
not al
dec r9b
and al, r10b
and r9b, r13b
and dl, 0x80
not r9b
or al, dl
and r9b, al
and r9b, r12b
cmp r11, qword [rbp - 0x60]
jb 0x1401a1ed0
mov rcx, qword [rbp - 0x58]
movzx eax, r15b
movzx ecx, byte [rdi + rcx]
and cl, al
not al
and r9b, al
or r9b, cl
mov rax, qword [rbp - 0x50]
inc r11
mov r8, qword [rsp + 0x60]
mov byte [rdi + rax], r9b
mov rdi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
cmp r11, rsi
jb 0x1401a1e22
lea rdx, [rbp + 0x210]
lea rcx, [rbp - 0x20]
call qword [rsp + Ordinal_41]
lea rdx, [rbp + 0x210]
lea rcx, [rbp - 0x20]
call qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
xor r13d, r13d
mov eax, r13d
cmp r12, 0x20
jb 0x1401a1f7f
mov rcx, r12
and rcx, 0xffffffffffffffe0
nop dword [rax]
movdqu xmm0, xmmword [rbp + rax + 0xd0]
movdqu xmm1, xmmword [rbp + rax + 0x210]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
movdqu xmm0, xmmword [rbp + rax + 0xe0]
movdqu xmm1, xmmword [rbp + rax + 0x220]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0xe0], xmm1
add rax, 0x20
cmp rax, rcx
jb 0x1401a1f30
cmp rax, r12
jae 0x1401a1f9e
movzx ecx, byte [rbp + rax + 0x210]
and cl, r15b
or byte [rbp + rax + 0xd0], cl
inc rax
cmp rax, r12
jb 0x1401a1f84
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x38]
inc rdx
mov r8, qword [rsp + 0x60]
mov qword [rsp + 0x58], rdx
cmp rdx, qword [rbp - 0x48]
jbe 0x1401a1dc0
movaps xmm6, xmmword [rsp + 0x3a0]
call fcn.1400de860
mov rbx, rax
test rax, rax
je 0x1401a205f
mov rcx, qword [rbp - 0x40]
call fcn.1400bf540
mov rdx, rax
xor r8d, r8d
mov rcx, rbx
call fcn.1400de330
test eax, eax
jle 0x1401a205f
cmp byte [rbp + 0x348], 0
je 0x1401a2092
mov rdi, qword [rbp - 0x80]
lea rcx, [rbp + 0x110]
mov r8, rdi
mov edx, 0x5c
call sub.VCRUNTIME140.dll_memset
mov r8, qword [rbp + 0x340]
mov rcx, rbx
mov rdx, qword [rbp - 0x78]
call fcn.1400de5a0
test eax, eax
jle 0x1401a205f
mov r8, rdi
lea rdx, [rbp + 0x110]
mov rcx, rbx
call fcn.1400de5a0
test eax, eax
jle 0x1401a205f
mov r8, r12
lea rdx, [rbp + 0xd0]
mov rcx, rbx
call fcn.1400de5a0
test eax, eax
jg 0x1401a210d
mov rcx, rbx
call fcn.1400de820
xor eax, eax
mov r12, qword [rsp + 0x3b8]
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.1400b2240
add rsp, 0x3c0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
movdqa xmm2, xmmword [0x1401ea900]
nop word [rax + rax]
movdqu xmm0, xmmword [rbp + r13 + 0x110]
pxor xmm0, xmm2
movdqu xmmword [rbp + r13 + 0x110], xmm0
movdqu xmm1, xmmword [rbp + r13 + 0x120]
pxor xmm1, xmm2
movdqu xmmword [rbp + r13 + 0x120], xmm1
add r13, 0x20
cmp r13, rsi
jb 0x1401a20a0
mov r8, rsi
lea rdx, [rbp + 0x110]
mov rcx, rbx
call fcn.1400de5a0
test eax, eax
jle 0x1401a205f
mov r8, r12
lea rdx, [rbp + 0xd0]
mov rcx, rbx
call fcn.1400de5a0
test eax, eax
jle 0x1401a205f
mov rdx, qword [rbp - 0x38]
lea r8, [rsp + 0x68]
mov rcx, rbx
call fcn.1400de210
test eax, eax
je 0x1401a2132
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x1401a2132
mov eax, dword [rsp + 0x68]
mov qword [rcx], rax
mov rcx, rbx
call fcn.1400de820
mov eax, 1
jmp 0x1401a2069