Function at 0x14003c320
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1401d4770]
xor rax, rsp
mov qword [rbp + 0xa8], rax
mov rax, qword [rcx + 0x18]
mov rsi, r8
mov r13, rdx
mov qword [rsp + 0x30], rdx
xor edx, edx
mov r8d, 0xc8
mov r9, qword [rax + 0x670]
mov rax, qword [rcx + 0x20200]
lea rcx, [rsp + 0x40]
mov rdi, qword [r9 + 0x40]
mov ebx, dword [rdi + 0x240]
sub ebx, dword [rdi + 0x238]
mov byte [rbp + 0x10], al
shr rax, 8
mov byte [rbp + 0x11], al
shr rax, 8
mov byte [rbp + 0x12], al
shr rax, 8
mov byte [rbp + 0x13], al
shr rax, 8
mov byte [rbp + 0x14], al
shr rax, 8
mov byte [rbp + 0x15], al
shr rax, 8
mov byte [rbp + 0x16], al
shr rax, 8
mov byte [rbp + 0x17], al
mov r15d, dword [rdi + 0x240]
sub r15d, dword [rdi + 0x238]
add r15d, 0x10
call fcn.140145ba0
xor r12d, r12d
mov r11d, 0x88
mov r14d, r12d
cmp r15d, r11d
jl 0x14003c643
mov eax, 0xf0f0f0f1
lea r12d, [rbx - 7]
mul r15d
shr edx, 7
mov eax, edx
mov qword [rsp + 0x28], rax
imul eax, edx, 0xffffff78
add r15d, eax
mov dword [rsp + 0x20], r15d
nop word [rax + rax]
mov r8d, r14d
movsxd rax, r14d
sub r8d, ebx
lea r13, [rsp + 0x40]
sub r13, rax
mov r15d, reloc.WS2_32.dll_recvfrom
cmp rax, 8
jge 0x14003c444
movzx ecx, byte [rbp + rax + 0x10]
jmp 0x14003c466
lea ecx, [r12 - 1]
add ecx, r8d
cmp ecx, ebx
jge 0x14003c45e
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 8]
jmp 0x14003c466
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 8]
movzx edx, cl
lea r9, [rbp + 0x12]
add r9, rax
lea r11, [rbp + 0x11]
mov rcx, r9
lea r10d, [r8 + r12]
sub rcx, r11
cmp rcx, 8
jge 0x14003c48b
movzx ecx, byte [r9 - 1]
jmp 0x14003c4a6
cmp r10d, ebx
jge 0x14003c49e
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 7]
jmp 0x14003c4a6
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 7]
movzx ecx, cl
shl rcx, 8
or rdx, rcx
cmp rax, 6
jge 0x14003c4bc
movzx ecx, byte [r9]
jmp 0x14003c4da
lea ecx, [r10 + 1]
cmp ecx, ebx
jge 0x14003c4d2
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 6]
jmp 0x14003c4da
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 6]
movzx ecx, cl
lea r11, [rax + 4]
shl rcx, 0x10
or rdx, rcx
lea rcx, [r11 - 1]
cmp rcx, 8
jge 0x14003c4f9
movzx ecx, byte [r9 + 1]
jmp 0x14003c517
lea ecx, [r10 + 2]
cmp ecx, ebx
jge 0x14003c50f
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 5]
jmp 0x14003c517
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 5]
movzx ecx, cl
shl rcx, 0x18
or rdx, rcx
cmp r11, 8
jge 0x14003c52e
movzx ecx, byte [r9 + 2]
jmp 0x14003c54c
lea ecx, [r10 + 3]
cmp ecx, ebx
jge 0x14003c544
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 4]
jmp 0x14003c54c
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 4]
movzx ecx, cl
shl rcx, 0x20
or rdx, rcx
lea rcx, [r11 + 1]
cmp rcx, 8
jge 0x14003c567
movzx ecx, byte [r9 + 3]
jmp 0x14003c585
lea ecx, [r10 + 4]
cmp ecx, ebx
jge 0x14003c57d
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 3]
jmp 0x14003c585
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 3]
movzx ecx, cl
shl rcx, 0x28
or rdx, rcx
lea rcx, [r11 + 2]
cmp rcx, 8
jge 0x14003c5a0
movzx ecx, byte [r9 + 4]
jmp 0x14003c5be
lea ecx, [r10 + 5]
cmp ecx, ebx
jge 0x14003c5b6
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 2]
jmp 0x14003c5be
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 2]
movzx ecx, cl
shl rcx, 0x30
or rdx, rcx
lea rcx, [r11 + 3]
cmp rcx, 8
jge 0x14003c5d9
movzx ecx, byte [r9 + 5]
jmp 0x14003c5f7
lea ecx, [r10 + 6]
cmp ecx, ebx
jge 0x14003c5ef
mov rcx, qword [rdi + 0x238]
movzx ecx, byte [rcx + rax - 1]
jmp 0x14003c5f7
movsxd rcx, r8d
movzx ecx, byte [rcx + rsi - 1]
movzx ecx, cl
add r8d, 8
shl rcx, 0x38
or rdx, rcx
xor qword [rax + r13], rdx
add rax, 8
sub r15, 1
jne 0x14003c437
lea rcx, [rsp + 0x40]
call fcn.1400244c0
mov r11d, 0x88
add r14d, r11d
sub qword [rsp + 0x28], 1
jne 0x14003c420
mov r15d, dword [rsp + 0x20]
xor r12d, r12d
mov r13, qword [rsp + 0x30]
movsxd r10, r15d
test r15d, r15d
jle 0x14003c69b
movsxd rcx, r14d
lea r8, [rbp + 0x18]
sub r14d, ebx
lea r9d, [rbx - 8]
sub r8, rcx
mov rdx, r10
nop
cmp rcx, 8
jge 0x14003c66d
movzx eax, byte [rbp + rcx + 0x10]
jmp 0x14003c68b
lea eax, [r9 + r14]
cmp eax, ebx
jge 0x14003c683
mov rax, qword [rdi + 0x238]
movzx eax, byte [rax + rcx - 8]
jmp 0x14003c68b
movsxd rax, r14d
movzx eax, byte [rax + rsi - 8]
mov byte [r8 + rcx], al
inc r14d
inc rcx
sub rdx, 1
jne 0x14003c660
inc r15d
mov byte [rbp + r10 + 0x18], 1
movsxd rax, r15d
lea rcx, [rbp + 0x18]
sub r11d, r15d
add rcx, rax
movsxd r8, r11d
xor edx, edx
call fcn.140145ba0
or byte [rbp + 0x9f], 0x80
mov ecx, 0x80
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + r12 + 0x40]
movdqu xmm1, xmmword [rbp + r12 + 0x18]
pxor xmm1, xmm0
movdqu xmmword [rsp + r12 + 0x40], xmm1
movdqu xmm0, xmmword [rsp + r12 + 0x50]
movdqu xmm1, xmmword [rbp + r12 + 0x28]
pxor xmm1, xmm0
movdqu xmmword [rsp + r12 + 0x50], xmm1
movdqu xmm0, xmmword [rsp + r12 + 0x60]
movdqu xmm1, xmmword [rbp + r12 + 0x38]
pxor xmm1, xmm0
movdqu xmmword [rsp + r12 + 0x60], xmm1
movdqu xmm0, xmmword [rsp + r12 + 0x70]
movdqu xmm1, xmmword [rbp + r12 + 0x48]
pxor xmm1, xmm0
movdqu xmmword [rsp + r12 + 0x70], xmm1
add r12, 0x40
cmp r12, rcx
jl 0x14003c6d0
mov rax, qword [rbp + rcx + 0x18]
xor qword [rsp + rcx + 0x40], rax
lea rcx, [rsp + 0x40]
call fcn.1400244c0
mov rax, qword [rsp + 0x40]
cmp qword [r13], rax
jne 0x14003c781
mov rax, qword [rsp + 0x48]
cmp qword [r13 + 8], rax
jne 0x14003c781
mov rax, qword [rsp + 0x50]
cmp qword [r13 + 0x10], rax
jne 0x14003c781
mov rax, qword [rsp + 0x58]
cmp qword [r13 + 0x18], rax
jne 0x14003c781
mov al, 1
jmp 0x14003c783
xor al, al
mov rcx, qword [rbp + 0xa8]
xor rcx, rsp
call fcn.140140c60
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret