Function at 0x14004a870
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x28
call fcn.1400035e0
sub rsp, rax
movzx r10d, byte [rcx]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
mov r9d, r10d
mov qword [rsp + 0x48], rdi
dec r9d
mov qword [rsp + 0x20], r12
mov rbp, rdx
mov r12d, r8d
mov rsi, rcx
je 0x14004a953
sub r9d, 3
je 0x14004a90a
cmp r9d, 4
je 0x14004a90a
mov ebx, dword [0x1401c69b4]
mov eax, dword [reloc.WSOCK32.dll_closesocket]
mov ecx, 0x1e
cmp ebx, 1
mov edi, 1
jge 0x14004a8da
mov ebx, edi
jmp 0x14004a8df
cmp ebx, ecx
cmovg ebx, ecx
cmp eax, 1
jge 0x14004a8f3
cmp edi, ebx
mov eax, edi
cmovl eax, ebx
cdq
idiv ebx
jmp 0x14004a992
mov edx, 0x3c
cmp eax, edx
cmovg eax, edx
cmp eax, ebx
cmovl eax, ebx
cdq
idiv ebx
jmp 0x14004a992
mov ebx, dword [0x1401c69d4]
mov eax, dword [reloc.WSOCK32.dll_closesocket]
mov ecx, 0x1e
cmp ebx, 1
mov edi, 1
jge 0x14004a929
mov ebx, edi
jmp 0x14004a92e
cmp ebx, ecx
cmovg ebx, ecx
cmp eax, 1
jge 0x14004a93f
cmp edi, ebx
mov eax, edi
cmovl eax, ebx
cdq
idiv ebx
jmp 0x14004a992
mov edx, 0x3c
cmp eax, edx
cmovg eax, edx
cmp eax, ebx
cmovl eax, ebx
cdq
idiv ebx
jmp 0x14004a992
mov ebx, dword [0x1401c69c4]
mov eax, dword [reloc.WSOCK32.dll_closesocket]
mov ecx, 0x1e
cmp ebx, 1
mov edi, 1
jge 0x14004a972
mov ebx, edi
jmp 0x14004a977
cmp ebx, ecx
cmovg ebx, ecx
cmp eax, 1
jge 0x14004a980
mov eax, edi
jmp 0x14004a98a
mov edx, 0x3c
cmp eax, edx
cmovg eax, edx
cmp eax, ebx
cmovl eax, ebx
cdq
idiv ebx
cmp eax, 1
jl 0x14004a99f
mov edi, eax
cmp eax, 0x1e
cmovg edi, ecx
cmp r10b, 8
je 0x14004a9b6
mov dword [0x1401f3edc], 0xf
xor eax, eax
jmp 0x14004ad7c
lea rcx, [0x1401f2f30]
mov r9d, ebx
mov r8, rbp
mov dx, 0x3e8
call fcn.14004a0a0
test r12d, r12d
mov r11d, eax
je 0x14004aa05
test edi, edi
jle 0x14004aa05
test r11d, r11d
jne 0x14004aa00
xor edx, edx
mov rcx, rsi
call fcn.14004a6b0
lea rcx, [0x1401f2f30]
mov r9d, ebx
mov r8, rbp
mov dx, 0x3e8
call fcn.14004a0a0
mov r11d, eax
dec rdi
jne 0x14004a9d8
test r11d, r11d
je 0x14004ad6f
cmp r11d, 0x3e
je 0x14004ac72
cmp r11d, 0x46
jne 0x14004ad79
mov rax, qword [0x1401f2f30]
lea r10, [0x140000000]
mov edx, 4
mov qword [0x1401f3550], rax
mov rax, qword [0x1401f2f38]
mov qword [0x1401f3558], rax
mov rax, qword [0x1401f2f40]
mov qword [0x1401f3560], rax
mov rax, qword [0x1401f2f48]
mov qword [0x1401f3568], rax
mov rax, qword [0x1401f2f50]
mov qword [0x1401f3570], rax
mov rax, qword [0x1401f2f58]
mov qword [0x1401f3578], rax
mov rax, qword [0x1401f2f60]
mov qword [0x1401f3580], rax
mov rax, qword [0x1401f2f68]
mov qword [0x1401f3588], rax
mov eax, dword [0x1401f2f70]
mov dword [0x1401f3590], eax
movzx eax, word [0x1401f2f74]
mov word [0x1401f3594], ax
movzx eax, byte [0x1401f3552]
movzx r8d, byte [rax + r10 + 0x1c6df0]
lea r9d, [r8 + 2]
nop
movzx ecx, r8b
add rdx, 6
add r8d, 6
movzx eax, byte [rcx + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354a], al
lea eax, [r9 - 1]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354b], al
movzx eax, r9b
movzx eax, byte [rax + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354c], al
lea eax, [r9 + 1]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354d], al
lea eax, [r9 + 2]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354e], al
lea eax, [r9 + 3]
add r9d, 6
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x1c6df0]
xor byte [rdx + r10 + 0x1f354f], al
cmp rdx, 0x46
jl 0x14004aad0
mov rax, qword [0x1401f3558]
lea rbx, [0x1401f3509]
mov qword [0x1401f3508], rax
mov rax, qword [0x1401f3560]
movzx edx, byte [0x1401f3508]
mov qword [0x1401f3510], rax
mov rax, qword [0x1401f3568]
mov rcx, rbx
mov qword [0x1401f3518], rax
mov rax, qword [0x1401f3570]
mov qword [0x1401f3520], rax
mov rax, qword [0x1401f3578]
mov qword [0x1401f3528], rax
mov rax, qword [0x1401f3580]
mov qword [0x1401f3530], rax
mov rax, qword [0x1401f3588]
mov qword [0x1401f3538], rax
mov eax, dword [0x1401f3590]
mov dword [0x1401f3540], eax
movzx eax, word [0x1401f3594]
mov word [0x1401f3544], ax
mov eax, 0x3d
xor byte [rcx], dl
inc rcx
dec rax
jne 0x14004ac02
and dl, 0xf
movzx r10d, dl
nop
nop
nop
nop
xor dl, dl
mov r9w, 0x3d
mov r8, rbx
nop
nop
movzx ecx, byte [r8]
movzx eax, dl
inc r8
movzx edx, cl
shr cl, 1
shl al, 7
or cl, al
and dl, 1
add r9w, 0xffff
mov byte [r8 - 1], cl
jne 0x14004ac30
test dl, dl
je 0x14004ac5e
or byte [0x1401f3509], 0x80
movzx eax, r10w
add r10w, 0xffff
test ax, ax
jne 0x14004ac20
jmp 0x14004ad79
mov rax, qword [0x1401f2f30]
lea rbx, [0x1401f3509]
mov qword [0x1401f3508], rax
mov rax, qword [0x1401f2f38]
movzx edx, byte [0x1401f3508]
mov qword [0x1401f3510], rax
mov rax, qword [0x1401f2f40]
mov rcx, rbx
mov qword [0x1401f3518], rax
mov rax, qword [0x1401f2f48]
mov qword [0x1401f3520], rax
mov rax, qword [0x1401f2f50]
mov qword [0x1401f3528], rax
mov rax, qword [0x1401f2f58]
mov qword [0x1401f3530], rax
mov rax, qword [0x1401f2f60]
mov qword [0x1401f3538], rax
mov eax, dword [0x1401f2f68]
mov dword [0x1401f3540], eax
movzx eax, word [0x1401f2f6c]
mov word [0x1401f3544], ax
mov eax, 0x3d
xor byte [rcx], dl
inc rcx
dec rax
jne 0x14004ad04
and dl, 0xf
movzx r10d, dl
nop
nop
nop
xor dl, dl
mov r9w, 0x3d
mov r8, rbx
nop
nop
movzx ecx, byte [r8]
movzx eax, dl
inc r8
movzx edx, cl
shr cl, 1
shl al, 7
or cl, al
and dl, 1
add r9w, 0xffff
mov byte [r8 - 1], cl
jne 0x14004ad30
test dl, dl
je 0x14004ad5e
or byte [0x1401f3509], 0x80
movzx eax, r10w
add r10w, 0xffff
test ax, ax
jne 0x14004ad20
jmp 0x14004ad79
mov dword [0x1401f3edc], 0xf
mov eax, r11d
mov r12, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x28
ret