Function at 0x140104850
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.1401127d0
sub rsp, rax
mov rax, qword [0x1401bd830]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov rax, qword [rbp + 0x310]
mov r15d, Ordinal_41
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 0x1401048f4
lea r8, str.data_plus_mac_plus_padding_size___1024__1024
mov edx, 0x1c7
lea rcx, [0x1401bbc30]
call fcn.140071240
mov rcx, r14
mov qword [rsp + 0x3a8], r12
call fcn.140068e40
mov rcx, rax
call fcn.14005e510
mov ecx, eax
mov r13d, reloc.WLDAP32.dll_Ordinal_32
cmp eax, 0x2a1
jg 0x1401049e6
je 0x1401049ce
cmp eax, 4
je 0x140104991
cmp eax, esi
je 0x140104964
cmp eax, 0x2a0
jne 0x1401049f3
lea rcx, [rbp - 0x30]
call fcn.140066810
test eax, eax
jle 0x14010515a
lea rax, [0x140105630]
mov ecx, r13d
lea r12, [0x140066870]
lea r10d, [r13 - 0x18]
jmp 0x140104a7a
lea rcx, [rbp - 0x30]
call fcn.140091880
test eax, eax
jle 0x14010515a
mov ecx, reloc.WS2_32.dll_sendto
lea rax, [0x1401055a0]
lea r12, [0x1400918d0]
lea r10d, [rcx - 0xc]
jmp 0x140104a7a
lea rcx, [rbp - 0x30]
call fcn.14006d140
test eax, eax
jle 0x14010515a
mov ecx, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], 0
mov r15d, Ordinal_50
lea rax, [0x140105520]
lea r12, [0x14006d180]
mov dword [rsp + 0x5c], r15d
lea r10d, [rcx - 8]
jmp 0x140104a7a
lea rcx, [rbp - 0x30]
call fcn.140091a20
test eax, eax
jle 0x14010515a
mov ecx, Ordinal_50
jmp 0x140104a5d
sub ecx, 0x2a2
je 0x140104a4a
cmp ecx, 1
je 0x140104a20
lea r8, [0x1401bbbbc]
mov edx, 0x209
lea rcx, [0x1401bbc40]
call fcn.140071240
test rdi, rdi
je 0x14010515a
mov qword [rdi], 0xffffffffffffffff
jmp 0x14010515a
lea rcx, [rbp - 0x30]
call fcn.140066480
test eax, eax
jle 0x14010515a
mov ecx, Ordinal_30
lea rax, [0x140105630]
lea r12, [0x140066870]
lea r10d, [rcx - 0x14]
jmp 0x140104a7a
lea rcx, [rbp - 0x30]
call fcn.140092050
test eax, eax
jle 0x14010515a
mov ecx, esi
mov r10d, reloc.WS2_32.dll_recv
lea r12, [0x1400920e0]
mov dword [rsp + 0x24], r10d
lea rax, [0x140105710]
lea esi, [r10 + 0x70]
movzx r11d, byte [rbp + 0x338]
mov r14d, reloc.WS2_32.dll_listen
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x2c], r14d
test r11b, r11b
je 0x140104ab3
mov r14d, dword [rbp + 0x330]
add r14d, 0xb
add r14d, r15d
mov dword [rsp + 0x2c], r14d
mov r15d, dword [rbp + 0x318]
test r11b, r11b
mov eax, 2
mov r9d, 6
cmovne r9d, eax
xor edx, edx
sub r15d, ecx
mov dword [rsp + 0x40], r9d
mov eax, ebx
add r15d, r14d
sub eax, ecx
xor ebx, ebx
dec eax
mov ecx, ebx
add eax, r14d
mov edi, ebx
add eax, r10d
add eax, esi
div esi
xor edx, edx
mov r8d, eax
mov eax, r15d
div esi
mov dword [rsp + 0x38], edx
xor edx, edx
mov dword [rsp + 0x70], eax
lea eax, [r15 + r10]
div esi
test r11b, r11b
mov dword [rsp + 0x74], eax
setne cl
lea edx, [rcx + r9]
mov ecx, r8d
sub ecx, r9d
cmp r8d, edx
jbe 0x140104b2a
mov edi, ecx
imul edi, esi
cmp r8d, edx
cmovbe ecx, ebx
lea r15d, [r15*8]
mov dword [rsp + 0x34], ecx
test r11b, r11b
jne 0x140104c24
mov r8d, esi
lea rcx, [rbp + 0x100]
xor edx, edx
lea r15d, [r15 + rsi*8]
call fcn.140114350
mov ebx, dword [rbp + 0x330]
cmp ebx, 0x80
jbe 0x140104b7d
lea r8, str.mac_secret_length___sizeof_hmac_pad_
mov edx, 0x271
lea rcx, str.._ssl_s3_cbc.c
call fcn.140071240
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0x100]
mov r8, rbx
call fcn.140113bc0
movdqa xmm2, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj_]
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 0x140104ba0
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x30]
call r12
mov r10d, 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 0x140104c8f
lea eax, [r10 - 4]
mov r8d, eax
mov ebx, eax
call fcn.140114350
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 0x140104cc4
mov r8d, r10d
call fcn.140114350
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 0x140104e00
cmp byte [rbp + 0x338], 0
je 0x140104d80
cmp r14d, esi
jbe 0x14010515a
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.140113bc0
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x180]
mov r8d, esi
add rcx, r15
sub r8d, ebx
call fcn.140113bc0
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 0x140104e00
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0x60]
nop
mov edx, ebx
lea rcx, [rbp - 0x30]
imul edx, esi
sub rdx, r15
add rdx, r14
call r13
inc ebx
cmp ebx, r12d
jb 0x140104d60
mov r14d, dword [rsp + 0x2c]
jmp 0x140104dfa
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.140113bc0
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 0x140104e00
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 0x140104de0
mov r13d, reloc.WLDAP32.dll_Ordinal_32
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 0x1401050bd
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 r9d, r9d
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
movzx eax, r12b
punpcklbw xmm6, xmm6
or al, r15b
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
mov byte [rsp + 0x20], al
xor r10b, r10b
mov ecx, edi
cmp edi, r14d
jae 0x140104ed4
mov rax, qword [rsp + 0x68]
jmp 0x140104eed
mov eax, r14d
add rax, qword [rbp + 0x320]
cmp rcx, rax
jae 0x140104ef2
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 0x140104f6b
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 0x140104ec3
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 0x140105069
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 0x140104fc0
cmp edx, r15d
jae 0x14010509b
mov r8d, r15d
mov ecx, edx
sub r8d, edx
nop word [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 0x140105080
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x38]
inc ecx
mov dword [rsp + 0x34], ecx
cmp ecx, dword [rsp + 0x30]
jbe 0x140104e60
movaps xmm6, xmmword [rsp + 0x390]
jmp 0x1401050c2
mov r15d, dword [rsp + 0x28]
lea rcx, [rbp - 0x60]
call fcn.140075c00
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp - 0x60]
xor r8d, r8d
mov rdx, qword [rdx]
call fcn.1400754d0
test eax, eax
jle 0x140105151
cmp byte [rbp + 0x338], 0
je 0x140105185
mov ebx, dword [rsp + 0x5c]
lea rcx, [rbp + 0x100]
mov r8d, ebx
mov edx, 0x5c
call fcn.140114350
mov r8d, dword [rbp + 0x330]
lea rcx, [rbp - 0x60]
mov rdx, qword [rbp - 0x80]
call fcn.140075710
test eax, eax
jle 0x140105151
mov r8d, ebx
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x60]
call fcn.140075710
test eax, eax
jle 0x140105151
mov r8d, r15d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x60]
call fcn.140075710
test eax, eax
jg 0x14010523d
lea rcx, [rbp - 0x60]
call fcn.140075730
xor eax, eax
mov r12, qword [rsp + 0x3a8]
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.140111cf0
add rsp, 0x3b0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
movdqa xmm2, xmmword [0x14015c9c0]
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 0x140105190
mov r8d, esi
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x60]
call fcn.140075710
test eax, eax
jle 0x140105151
mov r8d, r15d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x60]
call fcn.140075710
test eax, eax
jle 0x140105151
mov rdx, qword [rbp - 0x70]
lea r8, [rsp + 0x78]
lea rcx, [rbp - 0x60]
call fcn.1400753c0
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x14010525f
mov ecx, dword [rsp + 0x78]
mov qword [rdx], rcx
lea rcx, [rbp - 0x60]
call fcn.140075730
mov eax, 1
jmp 0x14010515c