Function at 0x14003f4b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rax, qword [0x1400f5980]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov ebp, 0xffffff53
test rcx, rcx
je 0x14003f5f9
mov r15d, r9d
mov r9, qword [rsp + 0xf0]
test r9, r9
je 0x14003f5f9
mov rsi, r8
mov r13, rdx
mov r14, rcx
mov rax, qword [rsp + 0x100]
test r15d, r15d
je 0x14003f51f
test r13, r13
je 0x14003f5f9
test rsi, rsi
je 0x14003f5f9
test rax, rax
je 0x14003f5f9
mov eax, dword [rsp + 0xf8]
test eax, eax
je 0x14003f5f9
mov ecx, dword [rsp + 0x108]
add ecx, 0xffffffef
cmp ecx, 0xfffffff0
jb 0x14003f5f9
mov ebx, dword [rsp + 0x118]
mov r12, qword [rsp + 0x110]
cmp eax, 0xc
jne 0x14003f578
mov eax, dword [r9 + 8]
mov dword [rsp + 0x78], eax
mov rax, qword [r9]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x7c], 0x1000000
jmp 0x14003f5b4
mov edi, dword [r14 + 0x144]
mov dword [r14 + 0x144], 0
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov rcx, r14
xor edx, edx
xor r8d, r8d
call fcn.14003e430
mov dword [r14 + 0x144], edi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x3c], r15d
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov rcx, r14
mov rdx, r12
mov r8d, ebx
mov r9, rsi
call fcn.14003e430
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x40]
mov rcx, r14
call fcn.14003c470
mov ebp, eax
test eax, eax
je 0x14003f61f
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14009adb0
mov eax, ebp
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqa xmm0, xmmword [rsp + 0x50]
pxor xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x50], xmm0
test r13, r13
jne 0x14003f63d
mov dword [r14 + 0x144], ebx
mov edi, dword [rsp + 0x3c]
cmp edi, 0x10
jae 0x14003f69c
mov rbx, r13
mov edi, dword [rsp + 0x3c]
and edi, 0xf
je 0x14003f916
inc byte [rsp + 0x7f]
jne 0x14003f66c
inc byte [rsp + 0x7e]
jne 0x14003f66c
inc byte [rsp + 0x7d]
jne 0x14003f66c
inc byte [rsp + 0x7c]
lea rdx, [rsp + 0x70]
lea r15, [rsp + 0x60]
mov rcx, r14
mov r8, r15
call fcn.14003c470
mov ebp, eax
test eax, eax
jne 0x14003f5f9
test sil, 7
je 0x14003f857
mov ecx, edi
jmp 0x14003f881
shr edi, 4
mov r12, rsi
mov r15, r13
mov rbx, r13
jmp 0x14003f778
movzx eax, byte [rsi]
xor al, byte [rsp + 0x60]
mov byte [rbx], al
movzx eax, byte [rsi + 1]
xor al, byte [rsp + 0x61]
mov byte [rbx + 1], al
movzx eax, byte [rsi + 2]
xor al, byte [rsp + 0x62]
mov byte [rbx + 2], al
movzx eax, byte [rsi + 3]
xor al, byte [rsp + 0x63]
mov byte [rbx + 3], al
movzx eax, byte [rsi + 4]
xor al, byte [rsp + 0x64]
mov byte [rbx + 4], al
movzx eax, byte [rsi + 5]
xor al, byte [rsp + 0x65]
mov byte [rbx + 5], al
movzx eax, byte [rsi + 6]
xor al, byte [rsp + 0x66]
mov byte [rbx + 6], al
movzx eax, byte [rsi + 7]
xor al, byte [rsp + 0x67]
mov byte [rbx + 7], al
movzx eax, byte [rsi + 8]
xor al, byte [rsp + 0x68]
mov byte [rbx + 8], al
movzx eax, byte [rsi + 9]
xor al, byte [rsp + 0x69]
mov byte [rbx + 9], al
movzx eax, byte [rsi + 0xa]
xor al, byte [rsp + 0x6a]
mov byte [rbx + 0xa], al
movzx eax, byte [rsi + 0xb]
xor al, byte [rsp + 0x6b]
mov byte [rbx + 0xb], al
movzx eax, byte [rsi + 0xc]
xor al, byte [rsp + 0x6c]
mov byte [rbx + 0xc], al
movzx eax, byte [rsi + 0xd]
xor al, byte [rsp + 0x6d]
mov byte [rbx + 0xd], al
movzx eax, byte [rsi + 0xe]
xor al, byte [rsp + 0x6e]
mov byte [rbx + 0xe], al
movzx eax, byte [rsi + 0xf]
xor al, byte [rsp + 0x6f]
mov byte [rbx + 0xf], al
dec edi
add rbx, 0x10
add rsi, 0x10
add r15, 0x10
add r12, 0x10
test edi, edi
je 0x14003f649
inc byte [rsp + 0x7f]
jne 0x14003f790
inc byte [rsp + 0x7e]
jne 0x14003f790
inc byte [rsp + 0x7d]
jne 0x14003f790
inc byte [rsp + 0x7c]
nop
mov rcx, r14
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x60]
call fcn.14003c470
test eax, eax
jne 0x14003f850
mov eax, r12d
or eax, r15d
test al, 7
jne 0x14003f6b0
mov rax, rbx
lea rdx, [rsp + 0x60]
mov rcx, rsi
test r13b, 7
je 0x14003f82c
movzx eax, byte [rsi]
xor al, byte [rsp + 0x60]
mov byte [rbx], al
movzx eax, byte [rsi + 1]
xor al, byte [rsp + 0x61]
mov byte [rbx + 1], al
movzx eax, byte [rsi + 2]
xor al, byte [rsp + 0x62]
mov byte [rbx + 2], al
movzx eax, byte [rsi + 3]
xor al, byte [rsp + 0x63]
mov byte [rbx + 3], al
movzx eax, byte [rsi + 4]
xor al, byte [rsp + 0x64]
mov byte [rbx + 4], al
movzx eax, byte [rsi + 5]
xor al, byte [rsp + 0x65]
mov byte [rbx + 5], al
movzx eax, byte [rsi + 6]
xor al, byte [rsp + 0x66]
mov byte [rbx + 6], al
movzx edx, byte [rsi + 7]
xor dl, byte [rsp + 0x67]
lea rcx, [rsi + 8]
lea rax, [rbx + 8]
mov byte [rbx + 7], dl
lea rdx, [rsp + 0x68]
mov r8, qword [rcx]
xor r8, qword [rdx]
mov qword [rax], r8
test r13b, 7
jne 0x14003f75e
mov rcx, qword [rcx + 8]
xor rcx, qword [rdx + 8]
mov qword [rax + 8], rcx
jmp 0x14003f75e
mov ebp, eax
jmp 0x14003f5f9
cmp edi, 8
jae 0x14003f863
lea r15, [rsp + 0x60]
jmp 0x14003f874
lea r15, [rsp + 0x68]
mov rax, qword [rsi]
add rsi, 8
xor qword [rsp + 0x60], rax
mov ecx, dword [rsp + 0x3c]
and ecx, 7
je 0x14003f906
mov eax, ecx
cmp ecx, 8
jb 0x14003f89a
lea rcx, [rsi + rax]
cmp r15, rcx
jae 0x14003f8f6
lea rcx, [r15 + rax]
cmp rsi, rcx
jae 0x14003f8f6
xor ecx, ecx
mov rdx, rcx
not rdx
add rdx, rax
mov r8, rax
and r8, 3
je 0x14003f8bf
movzx r9d, byte [rsi + rcx]
xor byte [r15 + rcx], r9b
inc rcx
dec r8
jne 0x14003f8ae
cmp rdx, 3
jb 0x14003f906
movzx edx, byte [rsi + rcx]
xor byte [r15 + rcx], dl
movzx edx, byte [rsi + rcx + 1]
xor byte [r15 + rcx + 1], dl
movzx edx, byte [rsi + rcx + 2]
xor byte [r15 + rcx + 2], dl
movzx edx, byte [rsi + rcx + 3]
xor byte [r15 + rcx + 3], dl
add rcx, 4
cmp rax, rcx
jne 0x14003f8c5
jmp 0x14003f906
mov ecx, eax
and ecx, 0xfffffff8
mov rdx, qword [rsi]
xor qword [r15], rdx
cmp rcx, rax
jne 0x14003f89c
mov r8d, edi
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.1400ca7f0
mov eax, dword [rsp + 0x108]
test eax, eax
jle 0x14003f9f6
mov eax, dword [rsp + 0x108]
mov rcx, rax
mov eax, ecx
cmp ecx, 8
jae 0x14003f947
xor ecx, ecx
xor edx, edx
mov r9, qword [rsp + 0x100]
jmp 0x14003f9d0
mov ecx, eax
and ecx, 0xfffffff8
pxor xmm1, xmm1
xor edx, edx
pxor xmm2, xmm2
pxor xmm0, xmm0
mov r9, qword [rsp + 0x100]
nop word cs:[rax + rax]
movd xmm3, dword [r9 + rdx]
movq xmm4, qword [rsp + rdx + 0x50]
pxor xmm4, xmm3
mov r8d, dword [rsp + rdx + 0x54]
xor r8d, dword [r9 + rdx + 4]
movd xmm3, r8d
punpcklbw xmm4, xmm1
punpcklwd xmm4, xmm1
por xmm2, xmm4
punpcklbw xmm3, xmm1
punpcklwd xmm3, xmm1
por xmm0, xmm3
add rdx, 8
cmp rcx, rdx
jne 0x14003f970
por xmm0, xmm2
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
cmp rcx, rax
je 0x14003f9e9
nop
movzx r8d, byte [rsp + rcx + 0x50]
xor r8b, byte [r9 + rcx]
movzx r8d, r8b
or edx, r8d
inc rcx
cmp rax, rcx
jne 0x14003f9d0
mov ebp, 0xffffff4c
test edx, edx
jne 0x14003f5f9
xor ebp, ebp
jmp 0x14003f5f9