Function at 0x1401bc970
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x280]
mov eax, 0x380
call fcn.1400be950
sub rsp, rax
mov rax, qword [0x140396c80]
xor rax, rsp
mov qword [rbp + 0x250], rax
mov rax, qword [rbp + 0x2e0]
mov rbx, r8
mov rdi, qword [rbp + 0x2f0]
mov r15d, Ordinal_41
mov qword [rsp + 0x60], rax
mov r14, rcx
mov rax, qword [rbp + 0x2f8]
mov esi, 0x40
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x68], r9
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x58], r15d
mov dword [rsp + 0x24], 8
mov byte [rsp + 0x20], 1
cmp rdi, 0x100000
jb 0x1401bca13
lea r8d, [rsi + 0x69]
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_data_plus_mac_plus_padding_size___1024__1024
call fcn.1401d5810
mov rcx, r14
mov qword [rsp + 0x378], r12
call fcn.1401cb220
mov rcx, rax
call fcn.140022cb0
mov ecx, eax
mov r13d, reloc.WLDAP32.dll_Ordinal_32
cmp eax, 0x2a1
jg 0x1401bcb05
je 0x1401bcaed
cmp eax, 4
je 0x1401bcab0
cmp eax, esi
je 0x1401bca83
cmp eax, 0x2a0
jne 0x1401bcb12
lea rcx, [rbp - 0x60]
call fcn.1401d3270
test eax, eax
jle 0x1401bd2a2
lea rax, [0x1401bd550]
mov ecx, r13d
lea rbx, [0x1401d32d0]
lea r10d, [r13 - 0x18]
jmp 0x1401bcb98
lea rcx, [rbp - 0x60]
call fcn.1401fb840
test eax, eax
jle 0x1401bd2a2
mov ecx, reloc.WS2_32.dll_sendto
lea rax, [0x1401bd4c0]
lea rbx, [0x1401fb890]
lea r10d, [rcx - 0xc]
jmp 0x1401bcb98
lea rcx, [rbp - 0x60]
call fcn.1401d0fb0
test eax, eax
jle 0x1401bd2a2
mov ecx, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], 0
mov r15d, gethostbyname
lea rax, [0x1401bd440]
lea rbx, [0x1401d0ff0]
mov dword [rsp + 0x58], r15d
lea r10d, [rcx - 8]
jmp 0x1401bcb98
lea rcx, [rbp - 0x60]
call fcn.1401fce00
test eax, eax
jle 0x1401bd2a2
mov ecx, gethostbyname
jmp 0x1401bcb7b
sub ecx, 0x2a2
je 0x1401bcb68
cmp ecx, 1
je 0x1401bcb3e
mov r8d, 0xe7
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_0
call fcn.1401d5810
test rbx, rbx
je 0x1401bd2a2
xor eax, eax
mov qword [rbx], rax
jmp 0x1401bd2a2
lea rcx, [rbp - 0x60]
call fcn.1401d2ed0
test eax, eax
jle 0x1401bd2a2
mov ecx, Ordinal_32
lea rax, [0x1401bd550]
lea rbx, [0x1401d32d0]
lea r10d, [rcx - 0x14]
jmp 0x1401bcb98
lea rcx, [rbp - 0x60]
call fcn.1401fd450
test eax, eax
jle 0x1401bd2a2
mov ecx, esi
mov r10d, reloc.WS2_32.dll_recv
lea rbx, [0x1401fd4e0]
mov dword [rsp + 0x24], r10d
lea rax, [0x1401bd630]
lea esi, [r10 + 0x70]
movzx r12d, byte [rbp + 0x308]
mov r14d, reloc.WS2_32.dll_listen
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x2c], r14d
test r12b, r12b
je 0x1401bcbd1
mov r14d, dword [rbp + 0x300]
add r14d, 0xb
add r14d, r15d
mov dword [rsp + 0x2c], r14d
mov r15d, dword [rbp + 0x2e8]
test r12b, r12b
mov eax, 2
mov r9d, 6
cmovne r9d, eax
xor edx, edx
sub r15d, ecx
mov dword [rsp + 0x4c], r9d
mov eax, edi
add r15d, r14d
sub eax, ecx
xor r11d, r11d
dec eax
mov ecx, r11d
add eax, r14d
mov edi, r11d
add eax, r10d
add eax, esi
div esi
xor edx, edx
mov r8d, eax
mov eax, r15d
div esi
mov dword [rsp + 0x44], edx
xor edx, edx
mov dword [rsp + 0x70], eax
lea eax, [r15 + r10]
div esi
test r12b, r12b
mov dword [rsp + 0x74], eax
setne cl
lea edx, [rcx + r9]
mov ecx, r8d
sub ecx, r9d
cmp r8d, edx
jbe 0x1401bcc4b
mov edi, ecx
imul edi, esi
cmp r8d, edx
cmovbe ecx, r11d
lea r15d, [r15*8]
mov dword [rsp + 0x40], ecx
test r12b, r12b
jne 0x1401bcd4f
mov r8d, esi
lea rcx, [rbp + 0xd0]
xor edx, edx
lea r15d, [r15 + rsi*8]
call sub.VCRUNTIME140.dll_memset
mov r12d, dword [rbp + 0x300]
cmp r12d, 0x80
jbe 0x1401bcca2
mov r8d, 0x14f
lea rdx, str.ssl_s3_cbc.c
lea rcx, str.assertion_failed:_mac_secret_length___sizeof_hmac_pad_
call fcn.1401d5810
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0xd0]
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
movdqa xmm2, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj]
mov edx, r13d
lea eax, [rdx - 0x20]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [rdx - 0x10]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
mov eax, edx
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [rdx + 0x10]
add edx, 0x40
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [rdx - 0x20]
cmp eax, esi
jb 0x1401bccc0
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x60]
call rbx
mov r10d, dword [rsp + 0x24]
mov r12d, r15d
lea rcx, [rbp + 0x80]
mov ebx, r15d
shr r12d, 0x18
shr ebx, 0x10
mov eax, r15d
shr eax, 8
xor edx, edx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x30], eax
cmp byte [rsp + 0x20], dl
je 0x1401bcdb4
lea eax, [r10 - 4]
mov r8d, eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x48]
mov byte [rbp + rbx + 0x80], r12b
lea ecx, [rdx - 3]
mov byte [rbp + rcx + 0x80], al
lea ecx, [rdx - 2]
mov eax, dword [rsp + 0x30]
mov byte [rbp + rcx + 0x80], al
lea eax, [rdx - 1]
jmp 0x1401bcde6
mov r8d, r10d
call sub.VCRUNTIME140.dll_memset
mov edx, dword [rsp + 0x24]
lea eax, [rdx - 5]
mov byte [rbp + rax + 0x80], r12b
lea ecx, [rdx - 7]
lea eax, [rdx - 6]
mov byte [rbp + rax + 0x80], bl
mov eax, dword [rsp + 0x30]
mov byte [rbp + rcx + 0x80], al
lea eax, [rdx - 8]
mov byte [rbp + rax + 0x80], r15b
test edi, edi
je 0x1401bcf40
cmp byte [rbp + 0x308], 0
je 0x1401bceb3
cmp r14d, esi
jbe 0x1401bd2a2
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x60]
mov r12, qword [rsp + 0x38]
mov ebx, r14d
sub ebx, esi
call r12
mov edx, esi
lea rcx, [rbp + 0x150]
add rdx, qword [rsp + 0x68]
mov r8d, ebx
mov r15d, ebx
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x150]
mov r8d, esi
add rcx, r15
sub r8d, ebx
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rbp + 0x150]
lea rcx, [rbp - 0x60]
call r12
xor edx, edx
mov eax, edi
div esi
mov ebx, 1
lea r12d, [rax - 1]
cmp r12d, ebx
jbe 0x1401bcf40
mov r13, qword [rsp + 0x38]
mov r14, qword [rsp + 0x60]
nop word [rax + rax]
mov edx, ebx
lea rcx, [rbp - 0x60]
imul edx, esi
sub rdx, r15
add rdx, r14
call r13
inc ebx
cmp ebx, r12d
jb 0x1401bce90
mov r14d, dword [rsp + 0x2c]
jmp 0x1401bcf3a
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 + 0x158], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x15d]
mov byte [rbp + 0x15c], al
movsd qword [rbp + 0x150], xmm0
call sub.VCRUNTIME140.dll_memcpy
mov r12, qword [rsp + 0x38]
lea rdx, [rbp + 0x150]
lea rcx, [rbp - 0x60]
call r12
xor edx, edx
mov eax, edi
div esi
mov ebx, 1
mov r15d, eax
cmp eax, ebx
jbe 0x1401bcf40
mov r13, qword [rsp + 0x60]
nop word [rax + rax]
mov ecx, ebx
lea rdx, [r13 - 0xd]
imul ecx, esi
add rdx, rcx
lea rcx, [rbp - 0x60]
call r12
inc ebx
cmp ebx, r15d
jb 0x1401bcf20
mov r13d, reloc.WLDAP32.dll_Ordinal_32
mov ecx, dword [rsp + 0x40]
xorps xmm0, xmm0
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x30], eax
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
cmp ecx, eax
ja 0x1401bd1fd
mov edx, dword [rsp + 0x44]
mov eax, edx
shr eax, 0x1f
mov dword [rsp + 0x4c], eax
movaps xmmword [rsp + 0x360], xmm6
lea eax, [rdx + 1]
shr eax, 0x1f
mov dword [rsp + 0x2c], eax
mov eax, esi
sub eax, dword [rsp + 0x24]
mov dword [rsp + 0x48], eax
nop
mov r13d, dword [rsp + 0x24]
lea r11, [rbp + 0x1d0]
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 0x1401bd016
mov rax, qword [rsp + 0x68]
jmp 0x1401bd02f
mov eax, r14d
add rax, qword [rbp + 0x2f0]
cmp rcx, rax
jae 0x1401bd034
mov rcx, qword [rsp + 0x60]
mov eax, edi
sub eax, r14d
movzx r10d, byte [rax + rcx]
mov eax, dword [rsp + 0x4c]
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 + 0x48]
jb 0x1401bd0ad
mov ecx, r9d
and al, r12b
sub ecx, esi
add ecx, r13d
movzx edx, byte [rbp + rcx + 0x80]
and dl, bl
or al, dl
mov edx, dword [rsp + 0x44]
inc r9d
mov byte [r11], al
inc r11
cmp r9d, esi
jb 0x1401bd005
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp - 0x60]
call qword [rsp + gethostname]
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp - 0x60]
call qword [rsp + 0x50]
mov r15d, dword [rsp + 0x28]
xor eax, eax
mov edx, eax
lea r13d, [rax + 0x20]
cmp r15d, 0x40
jb 0x1401bd1ab
mov r8d, r15d
mov r9d, r13d
and r8d, 0xffffffc0
mov eax, edx
add edx, 0x40
movdqu xmm0, xmmword [rbp + rax + 0x90]
movdqu xmm1, xmmword [rbp + rax + 0x1d0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0x90], xmm1
lea eax, [r9 - 0x10]
movdqu xmm0, xmmword [rbp + rax + 0x90]
movdqu xmm1, xmmword [rbp + rax + 0x1d0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0x90], xmm1
mov eax, r9d
movdqu xmm0, xmmword [rbp + rax + 0x90]
movdqu xmm1, xmmword [rbp + rax + 0x1d0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0x90], xmm1
lea eax, [r9 + 0x10]
add r9d, 0x40
movdqu xmm0, xmmword [rbp + rax + 0x90]
movdqu xmm1, xmmword [rbp + rax + 0x1d0]
pand xmm1, xmm6
por xmm1, xmm0
movdqu xmmword [rbp + rax + 0x90], xmm1
cmp edx, r8d
jb 0x1401bd102
cmp edx, r15d
jae 0x1401bd1db
mov eax, r15d
mov ecx, edx
sub eax, edx
mov edx, eax
nop dword [rax]
movzx eax, byte [rbp + rcx + 0x1d0]
lea rcx, [rcx + 1]
and al, bl
or byte [rbp + rcx + 0x8f], al
sub rdx, 1
jne 0x1401bd1c0
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + 0x44]
inc ecx
mov dword [rsp + 0x40], ecx
cmp ecx, dword [rsp + 0x30]
jbe 0x1401bcfa0
movaps xmm6, xmmword [rsp + 0x360]
jmp 0x1401bd202
mov r15d, dword [rsp + 0x28]
call fcn.1401c5500
mov rbx, rax
test rax, rax
je 0x1401bd29a
mov rcx, qword [rbp - 0x78]
call fcn.1401cb220
mov rdx, rax
xor r8d, r8d
mov rcx, rbx
call fcn.1401c4f50
test eax, eax
jle 0x1401bd29a
cmp byte [rbp + 0x308], 0
je 0x1401bd2cd
mov edi, dword [rsp + 0x58]
lea rcx, [rbp + 0xd0]
mov r8d, edi
mov edx, 0x5c
call sub.VCRUNTIME140.dll_memset
mov r8d, dword [rbp + 0x300]
mov rcx, rbx
mov rdx, qword [rbp - 0x80]
call fcn.1401c51b0
test eax, eax
jle 0x1401bd29a
mov r8d, edi
lea rdx, [rbp + 0xd0]
mov rcx, rbx
call fcn.1401c51b0
test eax, eax
jle 0x1401bd29a
mov r8d, r15d
lea rdx, [rbp + 0x90]
mov rcx, rbx
call fcn.1401c51b0
test eax, eax
jg 0x1401bd390
mov rcx, rbx
call fcn.1401c54c0
xor eax, eax
mov r12, qword [rsp + 0x378]
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.1400be7c0
add rsp, 0x380
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
movdqa xmm2, xmmword [0x140300620]
lea eax, [r13 - 0x20]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [r13 - 0x10]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
mov eax, r13d
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [r13 + 0x10]
add r13d, 0x40
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rbp + rax + 0xd0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0xd0], xmm1
lea eax, [r13 - 0x20]
cmp eax, esi
jb 0x1401bd2d5
mov r8d, esi
lea rdx, [rbp + 0xd0]
mov rcx, rbx
call fcn.1401c51b0
test eax, eax
jle 0x1401bd29a
mov r8d, r15d
lea rdx, [rbp + 0x90]
mov rcx, rbx
call fcn.1401c51b0
test eax, eax
jle 0x1401bd29a
mov rdx, qword [rbp - 0x70]
lea r8, [rsp + 0x78]
mov rcx, rbx
call fcn.1401c4e30
test eax, eax
je 0x1401bd3b5
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x1401bd3b5
mov ecx, dword [rsp + 0x78]
mov qword [rdx], rcx
mov rcx, rbx
call fcn.1401c54c0
mov eax, 1
jmp 0x1401bd2a4