Function at 0x1401ac7d0
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 0x1401ac85d
lea eax, [r12 + 0x10]
cmp r14d, 2
je 0x1401ac862
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 0x1401ac887
cmp r14d, 2
jne 0x1401ac887
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 0x1401ac8bd
mov edi, esi
jmp 0x1401ac8e2
mov eax, r8d
mov ecx, reloc.WS2_32.dll_ntohl
lea rdx, [0x14027f1d8]
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 0x1401ac8f1
mov eax, dword [rsp + 0x34]
cmp eax, dword [rbp + 0x14]
cmovge edi, esi
test r9d, r9d
je 0x1401ac91a
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.1401b87a0
mov ebx, eax
mov rcx, r15
call fcn.1401b2e50
mov r11d, 0x4000
mov dword [rsp + 0xc0], eax
cmp edi, esi
je 0x1401acdae
mov r8d, dword [rsp + 0x30]
test r8d, r8d
je 0x1401ac994
test r13d, r13d
je 0x1401ac9da
mov r9d, dword [rbp + 0x40]
test r9d, r9d
je 0x1401ac9da
cmp ebx, 0x2000
mov eax, 0x7fff
jg 0x1401ac969
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 0x1401ac98d
mov ebx, ecx
test ecx, ecx
cmovs ebx, r12d
test r9d, r9d
js 0x1401ac994
inc ebx
test r13d, r13d
je 0x1401acb06
cmp r14d, 2
jle 0x1401acb06
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 0x1401acb9c
cmp ebx, ebp
jg 0x1401acb54
lea r8d, [rbx + rbx*2 + 3]
jmp 0x1401acb5d
mov eax, edi
imul eax, ebx
lea ebx, [rax + 0x2000]
sar ebx, 0xe
test r13d, r13d
jne 0x1401ac99d
cmp dword [rbp + 0x48], r12d
je 0x1401acb06
test ebx, ebx
jle 0x1401acb06
cmp ebx, edi
jge 0x1401acb06
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.1401aad90
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 0x1401acb49
mov ebx, edi
mov r8d, dword [rsp + 0x30]
cmp dword [rsp + 0xd8], esi
jg 0x1401acce1
test r13d, r13d
jne 0x1401acce1
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 0x1401acc56
cmp ebx, ecx
jg 0x1401acc09
lea r8d, [rbx + 1]
jmp 0x1401acc12
neg eax
cmp ecx, eax
jge 0x1401acb01
mov ebx, r12d
jmp 0x1401acb01
mov r8d, r13d
sub r8d, ebp
add r8d, ebx
cmp ebx, ebp
jg 0x1401acb7c
lea edx, [rbx + rbx*2]
mov r9d, eax
mov rcx, r15
call fcn.1401a3990
mov r13d, dword [rsp + 0xe8]
jmp 0x1401acd00
sub r13d, ebp
mov r9d, eax
mov rcx, r15
lea edx, [r13 + rbx - 1]
call fcn.1401a3990
mov r13d, dword [rsp + 0xe8]
jmp 0x1401acd00
mov edx, eax
mov rcx, r15
call fcn.1401a7fe0
cmp eax, r13d
mov r11d, eax
jge 0x1401acbbf
mov eax, 0x55555556
imul r11d
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x1401acbc7
sub r11d, r13d
lea ebx, [r11 + rbp + 1]
cmp ebx, ebp
jg 0x1401acbd2
lea r8d, [rbx + rbx*2 + 3]
jmp 0x1401acbdb
mov r8d, r13d
sub r8d, ebp
add r8d, ebx
cmp ebx, ebp
jg 0x1401acbe4
lea edx, [rbx + rbx*2]
jmp 0x1401acbec
sub r13d, ebp
lea edx, [r13 + rbx - 1]
mov r9d, dword [rsp + 0xe0]
mov rcx, r15
call fcn.1401a8070
mov r13d, dword [rsp + 0xe8]
jmp 0x1401acd00
mov r8d, edi
sub r8d, ebx
inc r8d
cmp ebx, ecx
jg 0x1401acc31
lea edx, [rbx + 1]
mov r9d, ebp
mov rcx, r15
imul edx, ebx
sar edx, 1
add r8d, edx
call fcn.1401a3990
jmp 0x1401acd00
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.1401a3990
jmp 0x1401acd00
mov edx, ebp
mov rcx, r15
call fcn.1401a7fe0
mov ecx, dword [rsp + 0xe8]
mov r11d, eax
lea eax, [rcx + 1]
imul eax, ecx
sar eax, 1
cmp r11d, eax
jge 0x1401acca4
lea ecx, [r11*8 + 1]
call fcn.1401ba630
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.1401a8070
jmp 0x1401acd00
mov ecx, ebp
sub ecx, r11d
lea ecx, [rcx*8 - 7]
call fcn.1401ba630
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.1401a8070
jmp 0x1401acd00
mov rcx, r15
test r8d, r8d
je 0x1401accf6
lea r8d, [rdi + 1]
mov edx, ebx
call fcn.1401a3f10
jmp 0x1401acd00
lea edx, [rdi + 1]
call fcn.1401a81d0
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 0x1401acd48
test r13d, r13d
je 0x1401acd48
test eax, eax
jne 0x1401acd94
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.1401ab6d0
mov edi, r12d
mov rcx, r15
call fcn.1401b2e50
mov ebp, eax
mov rax, qword [rsp + 0xc8]
sub ebp, dword [rsp + 0xc0]
sub dword [rax], ebp
test ebx, ebx
jne 0x1401acf24
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 0x1401ad038
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
mov r8d, r14d
call fcn.1401ab830
jmp 0x1401acd48
test r13d, r13d
je 0x1401acd48
mov edi, dword [rsp + 0x30]
test edi, edi
je 0x1401aceb7
cmp ebx, 0x2000
jle 0x1401ace83
cmp dword [rbp + 0x44], r12d
jne 0x1401ace83
cmp r14d, 4
movss xmm2, dword [0x1402a8fa0]
mov r9, qword [rsp + 0xb8]
mov dword [rsp + 0xa0], esi
mov r8d, r12d
mov rax, r12
jl 0x1401ace5d
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 0x1401ace20
cmp r8d, r14d
jge 0x1401ace8b
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 0x1401ace6c
jmp 0x1401ace8b
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.1401ab6d0
mov rax, qword [rsp + 0xc8]
cmp dword [rax], 0x10
jle 0x1401acf11
cmp dword [rbp + 0x28], 0x10
jle 0x1401acf11
mov rcx, r15
test edi, edi
je 0x1401acef5
mov edi, dword [rsp + 0xa0]
mov r8d, 2
mov edx, edi
call fcn.1401a3ab0
cmp dword [rbp + 0x44], r12d
mov ebx, r12d
cmovne edi, r12d
jmp 0x1401acd4b
mov edx, 2
call fcn.1401a80b0
cmp dword [rbp + 0x44], r12d
mov ebx, r12d
mov edi, eax
cmovne edi, r12d
jmp 0x1401acd4b
cmp dword [rbp + 0x44], r12d
mov edi, r12d
mov ebx, r12d
cmovne edi, r12d
jmp 0x1401acd4b
mov r15d, 0x4000
cmp ebx, r15d
jne 0x1401acf54
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 0x1401ad038
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.1401aad90
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