Function at 0x18004c400
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
xor ebx, ebx
cmp byte [0x1800ade40], bl
mov r15d, ebx
mov dword [rbp + 0x67], ebx
je 0x18004c450
mov rax, qword [0x1800ade48]
test rax, rax
je 0x18004c469
cmp dword [rax + 0x14], ebx
jl 0x18004c469
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rcx]
jmp 0x18004c46c
mov rax, qword [0x1800ade50]
test rax, rax
je 0x18004c469
cmp dword [rax + 0xc], ebx
jl 0x18004c469
mov rax, qword [rax]
mov rax, qword [rax]
jmp 0x18004c46c
mov rax, rbx
mov r13, qword [rax]
mov dword [rbp + 0x67], ebx
mov rdi, qword [rbp + 0x67]
mov r12, qword [rbp + 0x67]
nop word [rax + rax]
mov rdx, qword [r13]
test rdx, rdx
je 0x18004c6e7
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x10]
cmp rdx, r8
jbe 0x18004c6e7
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rdx, rcx
jae 0x18004c6e7
cmp byte [rdx], 0xe9
jne 0x18004c4eb
mov rax, qword gs:[0x60]
movsxd rsi, dword [rdx + 1]
add rsi, 5
add rsi, rdx
mov r8, qword [rax + 0x10]
cmp rsi, r8
jbe 0x18004c4eb
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rsi, rcx
jb 0x18004c4ee
mov rsi, rdx
mov eax, dword [0x1800ade3c]
xorps xmm0, xmm0
mov ecx, 0x28
mov dword [rbp - 0x29], 0xf7
movdqu xmmword [rbp - 0x1d], xmm0
mov dword [rbp - 0x25], 0xffffffff
mov dword [rbp - 0x21], eax
mov qword [rbp - 0xd], 4
mov dword [rbp - 5], ebx
call fcn.18006a6f0
mov r8d, 0x28
lea rdx, [rbp - 0x29]
mov rcx, rax
mov r14, rax
call fcn.18008e4e0
or r15d, 1
mov r10, rbx
mov r9d, ebx
mov eax, ebx
mov rcx, rbx
nop word [rax + rax]
mov r8d, dword [r14 + rcx*4]
lea ecx, [rax + r9]
movzx ecx, byte [rcx + rsi]
cmp ecx, r8d
je 0x18004c56b
cmp r8d, 0xffffffff
jne 0x18004c653
inc eax
mov ecx, eax
cmp rcx, 0xa
jb 0x18004c550
lea rax, [r10 + rsi]
test rax, rax
je 0x18004c668
mov rdx, qword [r13]
cmp byte [rdx], 0xe9
jne 0x18004c5b9
mov rax, qword gs:[0x60]
movsxd rsi, dword [rdx + 1]
add rsi, 5
add rsi, rdx
mov r8, qword [rax + 0x10]
cmp rsi, r8
jbe 0x18004c5b9
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rsi, rcx
jb 0x18004c5bc
mov rsi, rdx
mov eax, dword [0x1800ade3c]
xorps xmm0, xmm0
mov ecx, 0x28
mov dword [rbp + 7], 0xf7
movdqu xmmword [rbp + 0x13], xmm0
mov dword [rbp + 0xb], 0xffffffff
mov dword [rbp + 0xf], eax
mov dword [rbp + 0x23], ebx
mov qword [rbp + 0x27], 0x40
call fcn.18006a6f0
mov r8d, 0x28
lea rdx, [rbp + 7]
mov rcx, rax
mov rdi, rax
call fcn.18008e4e0
or r15d, 2
lea r12, [rdi + 0x28]
mov r10, rbx
mov r9d, ebx
mov edx, ebx
mov rax, rbx
nop dword [rax + rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rsi]
cmp eax, r8d
je 0x18004c63b
cmp r8d, 0xffffffff
jne 0x18004c7b7
inc edx
mov eax, edx
cmp rax, 0xa
jb 0x18004c620
lea rax, [r10 + rsi]
test rax, rax
je 0x18004c668
mov sil, 1
jmp 0x18004c66b
inc r9d
inc r10
movsxd rax, r9d
cmp rax, 0x3f6
jb 0x18004c541
xor sil, sil
test r15b, 2
je 0x18004c6b1
and r15d, 0xfffffffd
test rdi, rdi
je 0x18004c6b1
mov rdx, r12
mov rcx, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x18004c6ac
mov rcx, qword [rdi - 8]
mov rax, rdi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c9ac
call fcn.18006a6e8
and r15d, 0xfffffffe
test r14, r14
je 0x18004c6c7
mov edx, 0x28
mov rcx, r14
call fcn.18006a6e8
test sil, sil
jne 0x18004c7d1
mov eax, dword [rbp + 0x67]
add r13, 8
inc eax
mov dword [rbp + 0x67], eax
cmp eax, 0x150
jl 0x18004c480
movups xmm0, xmmword [str.pQPQFER_]
mov eax, dword [0x18009e678]
lea rcx, [rbp - 0x29]
mov dword [rbp - 0x11], eax
movaps xmmword [rbp - 0x29], xmm0
movsd xmm0, qword [0x18009e670]
movsd qword [rbp - 0x19], xmm0
call fcn.180052da0
mov r10, rax
test rax, rax
je 0x18004c793
mov edx, ebx
mov r9, rbx
nop
movsxd r8, edx
add r8, r10
cmp byte [r8], 0xc3
jne 0x18004c761
mov rcx, r8
mov rax, r8
and ecx, 0xf
sub rax, rcx
cmp byte [rax + 0x10], 0x40
jne 0x18004c761
movzx ecx, byte [r8 - 1]
lea eax, [rcx - 0x58]
cmp al, 7
jbe 0x18004c7e1
cmp byte [r8 - 2], 0x41
jne 0x18004c761
sub cl, 0x58
cmp cl, 7
jbe 0x18004c7e1
test r8b, 0xf
jne 0x18004c786
cmp byte [r10 + r9], 0x40
jne 0x18004c786
movzx eax, byte [r10 + r9 + 1]
sub al, 0x50
cmp al, 7
ja 0x18004c786
movzx eax, byte [r10 + r9 + 2]
sub al, 0x50
cmp al, 7
jbe 0x18004c796
inc edx
inc r9
cmp edx, 0xffff
jl 0x18004c720
mov r8, rbx
cmp byte [0x1800ade40], bl
je 0x18004c800
mov rax, qword [0x1800ade48]
test rax, rax
je 0x18004c824
cmp dword [rax + 0x14], ebx
jge 0x18004c7f2
mov r10, rbx
mov r10, qword [rbx]
jmp 0x18004c82c
inc r9d
inc r10
movsxd rax, r9d
cmp rax, 0x3f6
jb 0x18004c613
jmp 0x18004c668
movsxd rax, dword [rbp + 0x67]
mov qword [0x1800ae1f8], rax
jmp 0x18004c98b
mov rax, r8
and eax, 0xf
je 0x18004c796
sub r8, rax
add r8, 0x10
jmp 0x18004c796
mov rax, qword [rax]
mov rcx, qword [rax]
mov r10, qword [rcx]
mov r10, qword [r10]
jmp 0x18004c82c
mov rax, qword [0x1800ade50]
test rax, rax
je 0x18004c824
cmp dword [rax + 0xc], ebx
jge 0x18004c819
mov r10, rbx
mov r10, qword [rbx]
jmp 0x18004c82c
mov rax, qword [rax]
mov r10, qword [rax]
mov r10, qword [r10]
jmp 0x18004c82c
mov r1pe_dos_header, qword [0]
cmp dword [0x1800ab090], 2
mov eax, dword [0x18009e8b0]
movsd xmm0, qword [str.a_WPEDO_UH]
mov dword [rbp - 0x31], eax
movzx eax, byte [0x18009e8b4]
mov byte [rbp - 0x2d], al
movsd qword [rbp - 0x39], xmm0
jl 0x18004c93b
movdqa xmm2, xmmword [0x1800a0170]
mov ebx, 8
movdqa xmm4, xmmword [0x1800a0340]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800a01b0]
psubd xmm2, xmm0
movd xmm0, dword [str.a_WPEDO_UH]
andps xmm2, xmmword [0x1800a0280]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1800a02c0]
xorps xmm2, xmm0
movd dword [rbp - 0x39], xmm2
movdqa xmm2, xmmword [0x1800a0180]
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800a01b0]
psubd xmm2, xmm0
movd xmm0, dword [rbp - 0x35]
andps xmm2, xmmword [0x1800a0280]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1800a02c0]
xorps xmm2, xmm0
movd dword [rbp - 0x35], xmm2
movsxd rax, ebx
lea r9, [rbp - 0x39]
add r9, rax
nop word [rax + rax]
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub al, dl
movsx eax, al
imul ecx, eax, 0x31
add cl, bl
inc ebx
xor byte [r9 - 1], cl
cmp ebx, 0xd
jl 0x18004c950
mov rdx, r10
lea rcx, [rbp - 0x39]
call fcn.18004a120
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180070324
int3