Function at 0x4571f0
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 0x45752c
nop
movzx eax, byte [rbp]
cmp al, 0xc
je 0x457400
test al, al
je 0x457400
cmp al, 0x3d
jne 0x4573c0
mov rcx, qword [rbx + 0x320]
mov rax, rcx
sub rax, qword [rbx + 0x328]
jne 0x45726b
lea rsi, [r14 + 0x130]
jmp 0x4572ed
cmp rcx, qword [rbx + 0x318]
jne 0x457288
lea rcx, [rbx + 0x308]
call fcn.00453790
test al, al
je 0x457556
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.004531e0
test rax, rax
mov rsi, rax
je 0x457556
mov rdx, qword [rax]
cmp rdx, qword [rbx + 0x328]
jne 0x4572df
lea rcx, [r14 + 0xa0]
call fcn.004551d0
test rax, rax
mov qword [rsi], rax
je 0x457556
mov rax, qword [rbx + 0x328]
mov qword [rbx + 0x320], rax
movzx eax, byte [rbp + 1]
lea rdi, [rbp + 1]
cmp al, 0xc
je 0x457344
nop
nop
test al, al
je 0x457344
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x457328
lea rcx, [rbx + 0x308]
call fcn.00453790
test al, al
je 0x457556
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 0x457300
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x457368
lea rcx, [rbx + 0x308]
call fcn.00453790
test al, al
je 0x457556
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.00452920
test eax, eax
jne 0x457556
mov rax, qword [rbx + 0x328]
mov qword [rbx + 0x320], rax
cmp byte [rdi], 0
je 0x4573b8
inc rdi
mov rbp, rdi
jmp 0x457523
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x4573e4
lea rcx, [rbx + 0x308]
call fcn.00453790
test al, al
je 0x457556
movzx eax, byte [rbp]
mov rcx, qword [rbx + 0x320]
mov byte [rcx], al
inc qword [rbx + 0x320]
inc rbp
jmp 0x457523
mov rax, qword [rbx + 0x318]
cmp qword [rbx + 0x320], rax
jne 0x457424
lea rcx, [rbx + 0x308]
call fcn.00453790
test al, al
je 0x457556
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 0x457509
movzx edi, byte [rsi]
xor r9d, r9d
mov rcx, rsi
test dil, dil
je 0x457476
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 0x457460
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 0x457509
mov rax, qword [r11 + rdx*8]
mov rcx, qword [rax]
cmp dil, byte [rcx]
jne 0x4574b7
mov r8, rsi
movzx eax, dil
sub r8, rcx
test al, al
je 0x4574fc
mov al, byte [r8 + rcx + 1]
inc rcx
cmp al, byte [rcx]
je 0x4574a7
test r10b, r10b
jne 0x4574dc
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 0x4574f0
mov rax, r12
sub rax, rcx
add rdx, rax
jmp 0x4574f3
sub rdx, rcx
cmp qword [r11 + rdx*8], 0
jne 0x457491
jmp 0x457509
mov rax, qword [r11 + rdx*8]
test rax, rax
je 0x457509
mov byte [rax + 0x38], 1
cmp byte [rbp], 0
je 0x457512
inc rbp
mov rax, qword [rbx + 0x328]
mov rdi, rbp
mov qword [rbx + 0x320], rax
cmp byte [rdi], 0
jne 0x457230
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 0x45752e