Function at 0x140005390
Capabilities:
Allocate or change rwx memory
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov rbx, rcx
mov byte [rbp + 0x5f], dl
lea rdx, [0x140043c0e]
lea rsi, [rbp + 0x38]
mov r8d, 0x26
mov rcx, rsi
call fcn.140003b70
mov qword [rbp + 0x18], rbx
mov qword [rbp - 0x18], rsi
lea rax, [0x1400019f0]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x18]
mov qword [rbp - 8], rax
lea rax, [0x140004ce0]
mov qword [rbp], rax
lea rax, [rbp + 0x5f]
mov qword [rbp + 8], rax
lea rax, [0x14003a810]
mov qword [rbp + 0x10], rax
lea rax, [0x140043c38]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], 4
mov qword [rbp - 0x28], 0
lea rax, [rbp - 0x18]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 3
lea rcx, [rbp - 0x48]
call fcn.140023fc0
mov rdx, qword [rbp + 0x38]
test rdx, rdx
je 0x140005457
mov rcx, qword [rbp + 0x40]
mov r8d, 1
call fcn.140005df0
movzx eax, byte [rbp + 0x5f]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 1
mov qword [rbp + 0x28], 0
mov r14b, 0x55
mov sil, 0xc3
mov r13b, 0xcc
cmp al, 1
jne 0x1400057bb
mov rcx, qword [0x14005a010]
test rcx, rcx
je 0x1400057bb
mov rdx, qword [0x14005a008]
lea rax, [rdx + rcx]
mov sil, 0xc3
mov r9, rdx
cmp rcx, 8
jb 0x1400055a0
cmp rcx, 0x20
jae 0x1400054bd
mov sil, 0xc3
xor r8d, r8d
jmp 0x14000553c
mov r8, rcx
and r8, 0xffffffffffffffe0
pxor xmm0, xmm0
movd xmm1, dword [0x140043b90]
xor r9d, r9d
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdx + r9]
pxor xmm1, xmm2
movdqu xmm2, xmmword [rdx + r9 + 0x10]
pxor xmm0, xmm2
add r9, 0x20
cmp r8, r9
jne 0x1400054e0
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pxor xmm0, xmm1
movd esi, xmm0
cmp rcx, r8
je 0x1400055ab
test cl, 0x18
je 0x140005591
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r9, [rdx + r10]
movzx r11d, sil
movd xmm0, r11d
movq xmm1, qword [rdx + r8]
pxor xmm0, xmm1
add r8, 8
cmp r10, r8
jne 0x140005550
pshufd xmm1, xmm0, 0x55
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pxor xmm1, xmm0
movd esi, xmm1
cmp rcx, r10
jne 0x1400055a0
jmp 0x1400055ab
add r8, rdx
mov r9, r8
nop word [rax + rax]
xor sil, byte [r9]
inc r9
cmp r9, rax
jne 0x1400055a0
mov r13b, 0xcc
mov r9, rdx
cmp rcx, 8
jb 0x1400056b0
cmp rcx, 0x20
jae 0x1400055c9
mov r13b, 0xcc
xor r8d, r8d
jmp 0x140005641
mov r8, rcx
and r8, 0xffffffffffffffe0
pxor xmm0, xmm0
movd xmm1, dword [0x140043b94]
xor r9d, r9d
nop
movdqu xmm2, xmmword [rdx + r9]
pxor xmm1, xmm2
movdqu xmm2, xmmword [rdx + r9 + 0x10]
pxor xmm0, xmm2
add r9, 0x20
cmp r8, r9
jne 0x1400055e0
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pxor xmm0, xmm1
movd r13d, xmm0
cmp rcx, r8
je 0x1400056bb
test cl, 0x18
je 0x1400056a2
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r9, [rdx + r10]
movzx r11d, r13b
movd xmm0, r11d
nop word cs:[rax + rax]
movq xmm1, qword [rdx + r8]
pxor xmm0, xmm1
add r8, 8
cmp r10, r8
jne 0x140005660
pshufd xmm1, xmm0, 0x55
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pxor xmm1, xmm0
movd r13d, xmm1
cmp rcx, r10
jne 0x1400056b0
jmp 0x1400056bb
add r8, rdx
mov r9, r8
nop dword [rax + rax]
xor r13b, byte [r9]
inc r9
cmp r9, rax
jne 0x1400056b0
mov r14b, 0x55
cmp rcx, 8
jae 0x1400056cc
mov r9, rdx
jmp 0x1400057b0
cmp rcx, 0x20
jae 0x1400056da
mov r14b, 0x55
xor r8d, r8d
jmp 0x140005751
mov r8, rcx
and r8, 0xffffffffffffffe0
pxor xmm0, xmm0
movd xmm1, dword [0x140043b98]
xor r9d, r9d
movdqu xmm2, xmmword [rdx + r9]
pxor xmm1, xmm2
movdqu xmm2, xmmword [rdx + r9 + 0x10]
pxor xmm0, xmm2
add r9, 0x20
cmp r8, r9
jne 0x1400056f0
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pxor xmm0, xmm1
movd r14d, xmm0
cmp rcx, r8
je 0x1400057bb
test cl, 0x18
je 0x140005bed
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r9, [rdx + r10]
movzx r11d, r14b
movd xmm0, r11d
nop word cs:[rax + rax]
movq xmm1, qword [rdx + r8]
pxor xmm0, xmm1
add r8, 8
cmp r10, r8
jne 0x140005770
pshufd xmm1, xmm0, 0x55
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pxor xmm1, xmm0
movd r14d, xmm1
cmp rcx, r10
je 0x1400057bb
xor r14b, byte [r9]
inc r9
cmp r9, rax
jne 0x1400057b0
mov dword [rbp + 0x30], esi
xor r15d, r15d
xor eax, eax
xor esi, esi
mov qword [rbp + 0x50], 0
xor edi, edi
mov qword [rbp - 0x50], rbx
jmp 0x1400057f5
mov rax, rbx
inc rbx
mov rcx, qword [rbp + 0x20]
mov byte [rcx + r15], r12b
inc r15
mov qword [rbp + 0x28], r15
mov qword [rbp - 0x58], rax
cmp rbx, 0xffffffffffffffff
je 0x1400059d3
movzx r12d, byte [rbx]
cmp r12b, r14b
jne 0x140005880
mov dil, 1
cmp r14b, byte [rbp + 0x30]
je 0x14000588c
cmp r12b, r13b
sete al
test al, sil
je 0x140005826
mov al, 1
mov qword [rbp + 0x50], rax
movzx eax, byte [rbx + 1]
cmp r15, 6
setae cl
mov edx, r12d
xor dl, 0x41
xor al, 0x57
or al, dl
sete al
test al, cl
jne 0x1400059d3
mov eax, edi
and al, sil
and al, byte [rbp + 0x50]
test al, 1
jne 0x1400059d3
mov rcx, qword [0x14005a010]
test rcx, rcx
je 0x1400059bb
mov rax, qword [0x14005a008]
cmp rcx, 8
jae 0x1400058a0
mov r8, rax
jmp 0x1400059a0
cmp r12b, byte [rbp + 0x30]
sete al
test al, dil
je 0x140005815
mov sil, 1
cmp r12b, r13b
je 0x140005820
jmp 0x140005826
cmp rcx, 0x20
jae 0x1400058ad
xor edx, edx
jmp 0x140005931
mov rdx, rcx
and rdx, 0xffffffffffffffe0
movzx r8d, r12b
movd xmm1, r8d
pxor xmm0, xmm0
xor r8d, r8d
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rax + r8]
pxor xmm1, xmm2
movdqu xmm2, xmmword [rax + r8 + 0x10]
pxor xmm0, xmm2
add r8, 0x20
cmp rdx, r8
jne 0x1400058d0
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pxor xmm0, xmm1
movd r12d, xmm0
cmp rcx, rdx
je 0x1400059bb
test cl, 0x18
je 0x140005991
mov r9, rcx
and r9, 0xfffffffffffffff8
lea r8, [rax + r9]
movzx r10d, r12b
movd xmm0, r10d
nop word cs:[rax + rax]
movq xmm1, qword [rax + rdx]
pxor xmm0, xmm1
add rdx, 8
cmp r9, rdx
jne 0x140005950
pshufd xmm1, xmm0, 0x55
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pxor xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pxor xmm1, xmm0
movd r12d, xmm1
cmp rcx, r9
jne 0x1400059a0
jmp 0x1400059bb
add rdx, rax
mov r8, rdx
nop word [rax + rax]
add rax, rcx
nop word cs:[rax + rax]
xor r12b, byte [r8]
inc r8
cmp r8, rax
jne 0x1400059b0
cmp r15, qword [rbp + 0x18]
jne 0x1400057e0
lea rcx, [rbp + 0x18]
call fcn.1400015d0
jmp 0x1400057e0
lea rdx, str.Eab_n0g
lea rbx, [rbp + 0x38]
mov r8d, 0x1d
mov rcx, rbx
call fcn.140003b70
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x48], rbx
lea rax, [0x1400019f0]
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rbp - 0x38], rax
lea rsi, [fcn.14003db40]
mov qword [rbp - 0x30], rsi
lea rdi, [0x140043bc0]
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 3
mov qword [rbp + 8], 0
lea rax, [rbp - 0x48]
mov qword [rbp - 8], rax
mov qword [rbp], 2
lea rcx, [rbp - 0x18]
call fcn.140023fc0
mov rdx, qword [rbp + 0x38]
test rdx, rdx
je 0x140005a62
mov rcx, qword [rbp + 0x40]
mov r8d, 1
call fcn.140005df0
lea rdx, str.Eab_b_53h
mov r8d, 0x1e
mov rcx, rbx
call fcn.140003b70
mov qword [rbp - 0x48], rbx
lea rax, [0x1400019f0]
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x38], rax
lea rax, [0x140004ce0]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 3
mov qword [rbp + 8], 0
lea rax, [rbp - 0x48]
mov qword [rbp - 8], rax
mov qword [rbp], 2
lea rcx, [rbp - 0x18]
call fcn.140023fc0
mov rdx, qword [rbp + 0x38]
test rdx, rdx
mov rdi, qword [rbp - 0x50]
je 0x140005ae2
mov rcx, qword [rbp + 0x40]
mov r8d, 1
call fcn.140005df0
mov rbx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x50], rax
mov r15, qword [rbp + 0x20]
cmp byte [rbp + 0x5f], 0
je 0x140005b05
mov rcx, rdi
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov qword [rbp + 0x18], 0
lea r14, [rbp + 0x18]
mov rcx, rdi
mov rdx, rbx
mov r8d, 0x40
mov r9, r14
call sub.kernel32.dll_VirtualProtect
mov rcx, rdi
mov rdx, r15
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp + 0x30], r15
mov rcx, r15
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
lea rdx, [0x140043c78]
lea rdi, [rbp + 0x38]
mov r8d, 0x16
mov rcx, rdi
call fcn.140003b70
mov qword [rbp - 0x48], rdi
lea rax, [0x1400019f0]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], rsi
lea rax, [0x140043c90]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], 3
mov qword [rbp + 8], 0
lea rax, [rbp - 0x48]
mov qword [rbp - 8], rax
mov qword [rbp], 2
lea rcx, [rbp - 0x18]
call fcn.140023fc0
mov rdx, qword [rbp + 0x38]
test rdx, rdx
je 0x140005bc0
mov rcx, qword [rbp + 0x40]
mov r8d, 1
call fcn.140005df0
mov rdx, qword [rbp + 0x50]
test rdx, rdx
mov rcx, qword [rbp + 0x30]
je 0x140005bd8
mov r8d, 1
call fcn.140005df0
nop
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add rdx, r8
jmp 0x1400056c4