Function at 0x461490
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x48
cmp byte [rdx], 0
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov qword [rax - 0x18], r14
mov r14, qword [rcx + reloc.SHELL32.dll_IsUserAnAdmin]
mov rdi, rdx
mov rbx, rcx
mov rbp, rdx
je 0x4617cc
nop
movzx eax, byte [rbp]
cmp al, 0xc
je 0x4616a0
test al, al
je 0x4616a0
cmp al, 0x3d
jne 0x461660
mov rcx, qword [rbx + 0x320]
mov rax, rcx
sub rax, qword [rbx + 0x328]
jne 0x46150b
lea rsi, [r14 + 0x130]
jmp 0x46158d
cmp rcx, qword [rbx + 0x318]
jne 0x461528
lea rcx, [rbx + 0x308]
call fcn.0045da30
test al, al
je 0x4617f6
mov rax, qword [rbx + 0x320]
lea rcx, [r14 + 0x78]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rax], 0
mov rdx, qword [rbx + 0x328]
inc qword [rbx + 0x320]
call fcn.0045d480
test rax, rax
mov rsi, rax
je 0x4617f6
mov rdx, qword [rax]
cmp rdx, qword [rbx + 0x328]
jne 0x46157f
lea rcx, [r14 + 0xa0]
call fcn.0045f470
test rax, rax
mov qword [rsi], rax
je 0x4617f6
mov rax, qword [rbx + 0x328]
mov qword [rbx + 0x320], rax
movzx eax, byte [rbp + 1]
lea rdi, [rbp + 1]
cmp al, 0xc
je 0x4615e4
nop
nop
test al, al
je 0x4615e4
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x4615c8
lea rcx, [rbx + 0x308]
call fcn.0045da30
test al, al
je 0x4617f6
movzx eax, byte [rdi]
mov rcx, qword [rbx + 0x320]
inc rdi
mov byte [rcx], al
inc qword [rbx + 0x320]
mov al, byte [rdi]
cmp al, 0xc
jne 0x4615a0
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x461608
lea rcx, [rbx + 0x308]
call fcn.0045da30
test al, al
je 0x4617f6
mov rax, qword [rbx + 0x320]
xor r8d, r8d
mov rdx, rsi
mov byte [rax], 0
mov r9, qword [rbx + 0x328]
inc qword [rbx + 0x320]
lea rax, [rbx + 0x2c8]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.0045cbc0
test eax, eax
jne 0x4617f6
mov rax, qword [rbx + 0x328]
mov qword [rbx + 0x320], rax
cmp byte [rdi], 0
je 0x461658
inc rdi
mov rbp, rdi
jmp 0x4617c3
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x461684
lea rcx, [rbx + 0x308]
call fcn.0045da30
test al, al
je 0x4617f6
movzx eax, byte [rbp]
mov rcx, qword [rbx + 0x320]
mov byte [rcx], al
inc qword [rbx + 0x320]
inc rbp
jmp 0x4617c3
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x4616c4
lea rcx, [rbx + 0x308]
call fcn.0045da30
test al, al
je 0x4617f6
mov rax, qword [rbx + 0x320]
mov byte [rax], 0
inc qword [rbx + 0x320]
mov r12, qword [r14 + 0x10]
test r12, r12
mov rsi, qword [rbx + 0x328]
je 0x4617a9
movzx edi, byte [rsi]
xor r9d, r9d
mov rcx, rsi
test dil, dil
je 0x461716
movzx eax, dil
nop
nop
imul r9d, r9d, 0xf4243
movzx eax, al
inc rcx
xor r9d, eax
mov al, byte [rcx]
test al, al
jne 0x461700
mov r11, qword [r14]
lea r13d, [r12 - 1]
mov edx, r9d
mov eax, r13d
xor r10b, r10b
and rdx, rax
cmp qword [r11 + rdx*8], 0
je 0x4617a9
mov rax, qword [r11 + rdx*8]
mov rcx, qword [rax]
cmp dil, byte [rcx]
jne 0x461757
mov r8, rsi
movzx eax, dil
sub r8, rcx
test al, al
je 0x46179c
mov al, byte [r8 + rcx + 1]
inc rcx
cmp al, byte [rcx]
je 0x461747
test r10b, r10b
jne 0x46177c
mov al, byte [r14 + 8]
mov r10d, r13d
not r10d
lea ecx, [rax - 1]
mov eax, r13d
and r10d, r9d
shr eax, 2
shr r10d, cl
and r10b, al
or r10b, 1
movzx ecx, r10b
cmp rdx, rcx
jae 0x461790
mov rax, r12
sub rax, rcx
add rdx, rax
jmp 0x461793
sub rdx, rcx
cmp qword [r11 + rdx*8], 0
jne 0x461731
jmp 0x4617a9
mov rax, qword [r11 + rdx*8]
test rax, rax
je 0x4617a9
mov byte [rax + 0x38], 1
cmp byte [rbp], 0
je 0x4617b2
inc rbp
mov rax, qword [rbx + 0x328]
mov rdi, rbp
mov qword [rbx + 0x320], rax
cmp byte [rdi], 0
jne 0x4614d0
mov al, 1
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
add rsp, 0x48
ret
xor al, al
jmp 0x4617ce