Function at 0x1401af620
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r9d, dword [rcx]
mov r13d, dword [rsp + 0xe8]
mov r14d, dword [rsp + 0xc0]
mov rbp, rcx
mov rcx, qword [rcx + 8]
xor r12d, r12d
movsxd rax, dword [rbp + 0x10]
mov rdx, qword [rbp + 0x30]
mov r15, qword [rbp + 0x20]
mov r10, rax
mov dword [rsp + 0x34], eax
mov rax, qword [rcx + 0x40]
movsx r8d, word [rax + r10*2]
mov eax, dword [rsp + 0xe0]
mov ebx, r12d
mov dword [rsp + 0xa0], r12d
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x40], rcx
lea r11d, [r8 + rax*8]
mov qword [rsp + 0x38], rdx
test r13d, r13d
je 0x1401af6ad
lea eax, [r12 + 0x10]
cmp r14d, 2
je 0x1401af6b2
mov eax, 4
mov ecx, r11d
lea r8d, [r14 + r14 - 1]
sar ecx, 1
sub ecx, eax
mov rax, qword [rsp + 0xc8]
mov r10d, dword [rax]
test r13d, r13d
je 0x1401af6d7
cmp r14d, 2
jne 0x1401af6d7
dec r8d
mov eax, r8d
imul eax, ecx
add eax, r10d
sub r10d, r11d
cdq
lea ecx, [r10 - 0x20]
idiv r8d
cmp ecx, eax
mov r8d, eax
mov eax, 0x40
cmovl r8d, ecx
lea esi, [rax - 0x3f]
cmp r8d, eax
cmovg r8d, eax
cmp r8d, 4
jge 0x1401af70d
mov edi, esi
jmp 0x1401af732
mov eax, r8d
mov ecx, reloc.WS2_32.dll_ntohl
lea rdx, [0x140281dd8]
sar eax, 3
sub cl, al
mov eax, r8d
and eax, 7
movsx edi, word [rdx + rax*2]
sar edi, cl
inc edi
and edi, 0xfffffffe
test r13d, r13d
je 0x1401af741
mov eax, dword [rsp + 0x34]
cmp eax, dword [rbp + 0x14]
cmovge edi, esi
test r9d, r9d
je 0x1401af76a
mov eax, dword [rbp + 0x3c]
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
mov r9d, r14d
mov r8d, r13d
mov dword [rsp + 0x20], eax
call fcn.1401bb720
mov ebx, eax
mov rcx, r15
call fcn.1401b5ca0
mov r11d, 0x4000
mov dword [rsp + 0xc0], eax
cmp edi, esi
je 0x1401afbfe
mov r8d, dword [rsp + 0x30]
test r8d, r8d
je 0x1401af7e4
test r13d, r13d
je 0x1401af82a
mov r9d, dword [rbp + 0x40]
test r9d, r9d
je 0x1401af82a
cmp ebx, 0x2000
mov eax, 0x7fff
jg 0x1401af7b9
mov eax, 0xffff8001
cdq
mov ecx, edi
idiv edi
imul ecx, ebx
lea ebx, [rdi - 1]
add ecx, eax
sar ecx, 0xe
test ecx, ecx
mov eax, ecx
cmovs eax, r12d
cmp ebx, eax
jl 0x1401af7dd
mov ebx, ecx
test ecx, ecx
cmovs ebx, r12d
test r9d, r9d
js 0x1401af7e4
inc ebx
test r13d, r13d
je 0x1401af956
cmp r14d, 2
jle 0x1401af956
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov ebp, eax
lea r13d, [rax + rax*2 + 3]
add eax, r13d
mov dword [rsp + 0xe0], eax
test r8d, r8d
je 0x1401af9ec
cmp ebx, ebp
jg 0x1401af9a4
lea r8d, [rbx + rbx*2 + 3]
jmp 0x1401af9ad
mov eax, edi
imul eax, ebx
lea ebx, [rax + 0x2000]
sar ebx, 0xe
test r13d, r13d
jne 0x1401af7ed
cmp dword [rbp + 0x48], r12d
je 0x1401af956
test ebx, ebx
jle 0x1401af956
cmp ebx, edi
jge 0x1401af956
xor edx, edx
mov ecx, r11d
mov eax, ebx
shl eax, 0xe
mov ebp, 0x2055
div edi
sub cx, ax
movsx r8d, ax
movsx r10d, cx
mov ecx, r11d
imul r8d, r8d
add r8d, 0x1000
sar r8d, 0xd
imul r10d, r10d
add r10d, 0x1000
movsx edx, r8w
sar r10d, 0xd
mov eax, edx
movsx r9d, r10w
imul eax, eax, 0x272
sub ecx, eax
sar ecx, 0xf
lea eax, [rbp + rcx]
mov ecx, 0x1de3
cwde
imul eax, edx
add eax, r11d
sar eax, 0xf
sub ax, cx
movsx ecx, ax
mov eax, r9d
imul ecx, edx
imul eax, eax, 0x272
add ecx, r11d
sar ecx, 0xf
sub cx, r8w
mov r8d, 0xffff8000
add cx, r8w
movsx edx, cx
mov ecx, r11d
sub ecx, eax
sar ecx, 0xf
lea eax, [rbp + rcx]
mov ecx, 0x1de3
cwde
imul eax, r9d
add eax, r11d
sar eax, 0xf
sub ax, cx
movsx ecx, ax
imul ecx, r9d
add ecx, r11d
sar ecx, 0xf
sub cx, r10w
add cx, r8w
movsx ecx, cx
call fcn.1401adbe0
mov edx, 0x80
movsx ecx, ax
movzx eax, r14w
imul ax, dx
sub ax, dx
cwde
imul ecx, eax
mov rax, qword [rsp + 0xc8]
add ecx, 0x4000
mov eax, dword [rax]
sar ecx, 0xf
cmp ecx, eax
jle 0x1401af999
mov ebx, edi
mov r8d, dword [rsp + 0x30]
cmp dword [rsp + 0xd8], esi
jg 0x1401afb31
test r13d, r13d
jne 0x1401afb31
mov ecx, edi
sar ecx, 1
mov dword [rsp + 0xe8], ecx
lea eax, [rcx + 1]
mov ebp, eax
imul ebp, eax
test r8d, r8d
je 0x1401afaa6
cmp ebx, ecx
jg 0x1401afa59
lea r8d, [rbx + 1]
jmp 0x1401afa62
neg eax
cmp ecx, eax
jge 0x1401af951
mov ebx, r12d
jmp 0x1401af951
mov r8d, r13d
sub r8d, ebp
add r8d, ebx
cmp ebx, ebp
jg 0x1401af9cc
lea edx, [rbx + rbx*2]
mov r9d, eax
mov rcx, r15
call fcn.1401a67e0
mov r13d, dword [rsp + 0xe8]
jmp 0x1401afb50
sub r13d, ebp
mov r9d, eax
mov rcx, r15
lea edx, [r13 + rbx - 1]
call fcn.1401a67e0
mov r13d, dword [rsp + 0xe8]
jmp 0x1401afb50
mov edx, eax
mov rcx, r15
call fcn.1401aae30
cmp eax, r13d
mov r11d, eax
jge 0x1401afa0f
mov eax, 0x55555556
imul r11d
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x1401afa17
sub r11d, r13d
lea ebx, [r11 + rbp + 1]
cmp ebx, ebp
jg 0x1401afa22
lea r8d, [rbx + rbx*2 + 3]
jmp 0x1401afa2b
mov r8d, r13d
sub r8d, ebp
add r8d, ebx
cmp ebx, ebp
jg 0x1401afa34
lea edx, [rbx + rbx*2]
jmp 0x1401afa3c
sub r13d, ebp
lea edx, [r13 + rbx - 1]
mov r9d, dword [rsp + 0xe0]
mov rcx, r15
call fcn.1401aaec0
mov r13d, dword [rsp + 0xe8]
jmp 0x1401afb50
mov r8d, edi
sub r8d, ebx
inc r8d
cmp ebx, ecx
jg 0x1401afa81
lea edx, [rbx + 1]
mov r9d, ebp
mov rcx, r15
imul edx, ebx
sar edx, 1
add r8d, edx
call fcn.1401a67e0
jmp 0x1401afb50
mov eax, edi
mov edx, ebp
mov r9d, ebp
sub eax, ebx
lea ecx, [rax + 2]
inc eax
imul ecx, eax
sar ecx, 1
sub edx, ecx
mov rcx, r15
add r8d, edx
call fcn.1401a67e0
jmp 0x1401afb50
mov edx, ebp
mov rcx, r15
call fcn.1401aae30
mov ecx, dword [rsp + 0xe8]
mov r11d, eax
lea eax, [rcx + 1]
imul eax, ecx
sar eax, 1
cmp r11d, eax
jge 0x1401afaf4
lea ecx, [r11*8 + 1]
call fcn.1401bd5b0
mov r9d, ebp
lea ebx, [rax - 1]
shr ebx, 1
lea ecx, [rbx + 1]
mov edx, ecx
imul edx, ebx
sar edx, 1
lea r8d, [rdx + rcx]
mov rcx, r15
call fcn.1401aaec0
jmp 0x1401afb50
mov ecx, ebp
sub ecx, r11d
lea ecx, [rcx*8 - 7]
call fcn.1401bd5b0
mov edx, ebp
lea ebx, [rdi + rdi + 2]
sub ebx, eax
mov eax, edi
mov r9d, ebp
shr ebx, 1
sub eax, ebx
lea ecx, [rax + 1]
add eax, 2
imul eax, ecx
sar eax, 1
sub edx, eax
lea r8d, [rdx + rcx]
mov rcx, r15
call fcn.1401aaec0
jmp 0x1401afb50
mov rcx, r15
test r8d, r8d
je 0x1401afb46
lea r8d, [rdi + 1]
mov edx, ebx
call fcn.1401a6d60
jmp 0x1401afb50
lea edx, [rdi + 1]
call fcn.1401ab020
mov ebx, eax
shl ebx, 0xe
xor edx, edx
mov eax, ebx
div edi
mov edi, dword [rsp + 0x30]
mov ebx, eax
test edi, edi
je 0x1401afb98
test r13d, r13d
je 0x1401afb98
test eax, eax
jne 0x1401afbe4
mov eax, dword [rsp + 0x34]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], eax
call fcn.1401ae520
mov edi, r12d
mov rcx, r15
call fcn.1401b5ca0
mov ebp, eax
mov rax, qword [rsp + 0xc8]
sub ebp, dword [rsp + 0xc0]
sub dword [rax], ebp
test ebx, ebx
jne 0x1401afd74
mov ecx, dword [rsp + 0xd0]
mov r13d, 0x7fff
mov r15d, 0xffffc000
shl esi, cl
mov rcx, qword [rsp + 0xf0]
dec esi
and dword [rcx], esi
jmp 0x1401afe88
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
mov r8d, r14d
call fcn.1401ae680
jmp 0x1401afb98
test r13d, r13d
je 0x1401afb98
mov edi, dword [rsp + 0x30]
test edi, edi
je 0x1401afd07
cmp ebx, 0x2000
jle 0x1401afcd3
cmp dword [rbp + 0x44], r12d
jne 0x1401afcd3
cmp r14d, 4
movss xmm2, dword [0x1402abc60]
mov r9, qword [rsp + 0xb8]
mov dword [rsp + 0xa0], esi
mov r8d, r12d
mov rax, r12
jl 0x1401afcad
lea eax, [r14 - 4]
lea rcx, [r9 + 8]
shr eax, 2
inc eax
mov edx, eax
lea r8d, [rax*4]
lea rax, [rax*4]
nop word [rax + rax]
movss xmm0, dword [rcx - 8]
movss xmm1, dword [rcx - 4]
add rcx, 0x10
sub rdx, rsi
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [rcx - 0x18], xmm0
movss xmm0, dword [rcx - 0x10]
movss dword [rcx - 0x14], xmm1
movss xmm1, dword [rcx - 0xc]
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [rcx - 0x10], xmm0
movss dword [rcx - 0xc], xmm1
jne 0x1401afc70
cmp r8d, r14d
jge 0x1401afcdb
mov edx, r14d
lea rcx, [r9 + rax*4]
sub edx, r8d
movss xmm0, dword [rcx]
add rcx, 4
sub rdx, rsi
xorps xmm0, xmm2
movss dword [rcx - 4], xmm0
jne 0x1401afcbc
jmp 0x1401afcdb
mov dword [rsp + 0xa0], r12d
mov eax, dword [rsp + 0x34]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], eax
call fcn.1401ae520
mov rax, qword [rsp + 0xc8]
cmp dword [rax], 0x10
jle 0x1401afd61
cmp dword [rbp + 0x28], 0x10
jle 0x1401afd61
mov rcx, r15
test edi, edi
je 0x1401afd45
mov edi, dword [rsp + 0xa0]
mov r8d, 2
mov edx, edi
call fcn.1401a6900
cmp dword [rbp + 0x44], r12d
mov ebx, r12d
cmovne edi, r12d
jmp 0x1401afb9b
mov edx, 2
call fcn.1401aaf00
cmp dword [rbp + 0x44], r12d
mov ebx, r12d
mov edi, eax
cmovne edi, r12d
jmp 0x1401afb9b
cmp dword [rbp + 0x44], r12d
mov edi, r12d
mov ebx, r12d
cmovne edi, r12d
jmp 0x1401afb9b
mov r15d, 0x4000
cmp ebx, r15d
jne 0x1401afda4
mov ecx, dword [rsp + 0xd0]
mov rax, qword [rsp + 0xf0]
mov r13d, r12d
shl esi, cl
mov r12d, 0x7fff
dec esi
shl esi, cl
and dword [rax], esi
jmp 0x1401afe88
mov ecx, r15d
mov r9d, 0x2055
movsx r8d, bx
mov r10d, 0x1de3
mov r11d, 0xffff8000
imul r8d, r8d
add r8d, 0x1000
sar r8d, 0xd
movsx edx, r8w
mov eax, edx
imul eax, eax, 0x272
sub ecx, eax
sar ecx, 0xf
lea eax, [r9 + rcx]
cwde
imul eax, edx
add eax, r15d
sar eax, 0xf
sub ax, r10w
movsx ecx, ax
mov eax, r15d
sub ax, bx
imul ecx, edx
add ecx, r15d
sar ecx, 0xf
sub cx, r8w
movsx r8d, ax
add cx, r11w
movsx r13d, cx
mov ecx, r15d
imul r8d, r8d
add r8d, 0x1000
sar r8d, 0xd
movsx edx, r8w
mov eax, edx
imul eax, eax, 0x272
sub ecx, eax
sar ecx, 0xf
lea eax, [r9 + rcx]
cwde
imul eax, edx
add eax, r15d
sar eax, 0xf
sub ax, r10w
movsx ecx, ax
imul ecx, edx
mov edx, r13d
add ecx, r15d
sar ecx, 0xf
sub cx, r8w
add cx, r11w
movsx r12d, cx
mov ecx, r12d
call fcn.1401adbe0
movsx ecx, ax
mov eax, 0x80
imul r14w, ax
sub r14w, ax
movsx eax, r14w
imul ecx, eax
add r15d, ecx
sar r15d, 0xf
mov rax, qword [rsp + 0xa8]
mov dword [rax], edi
mov dword [rax + 4], r13d
mov dword [rax + 8], r12d
mov dword [rax + 0xc], r15d
mov dword [rax + 0x10], ebx
mov dword [rax + 0x14], ebp
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret