Function at 0x18005d5e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
xor ebx, ebx
mov dword [rbp + 0x67], ebx
cmp byte [0x18021e7f0], bl
je 0x18005d622
mov rax, qword [0x18021e7f8]
test rax, rax
je 0x18005d63b
cmp dword [rax + 0x14], ebx
jl 0x18005d63b
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rcx]
jmp 0x18005d63e
mov rax, qword [0x18021e800]
test rax, rax
je 0x18005d63b
cmp dword [rax + 0xc], ebx
jl 0x18005d63b
mov rax, qword [rax]
mov rax, qword [rax]
jmp 0x18005d63e
mov rax, rbx
mov r14, qword [rax]
mov qword [rbp + 0x77], r14
mov dword [rbp + 0x6f], ebx
mov rdi, qword [rbp + 0x67]
mov r12, qword [rbp + 0x67]
mov rcx, qword [r14]
test rcx, rcx
je 0x18005d969
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rcx, rdx
jbe 0x18005d969
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rcx, rax
jae 0x18005d969
cmp byte [rcx], 0xe9
jne 0x18005d6b8
movsxd r14, dword [rcx + 1]
add r14, 5
add r14, rcx
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp r14, rdx
jbe 0x18005d6b8
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp r14, rax
jb 0x18005d6bb
mov r14, rcx
mov dword [rbp - 0x39], 0xf7
mov dword [rbp - 0x35], 0xffffffff
mov eax, dword [0x18021e7e4]
mov dword [rbp - 0x31], eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x2d], xmm0
mov qword [rbp - 0x1d], 4
mov dword [rbp - 0x15], ebx
movdqu xmmword [rbp - 0x59], xmm0
mov qword [rbp - 0x49], rbx
mov ecx, 0x28
call fcn.1800c4130
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], rax
lea rsi, [rax + 0x28]
mov qword [rbp - 0x49], rsi
mov r8d, 0x28
lea rdx, [rbp - 0x39]
mov rcx, rax
call fcn.1800eac60
mov qword [rbp - 0x51], rsi
mov r15d, dword [rbp + 0x67]
or r15d, 1
mov dword [rbp + 0x67], r15d
mov r10, qword [rbp - 0x59]
sub rsi, r10
sar rsi, 2
mov r13d, 0x400
sub r13, rsi
je 0x18005d89a
mov edx, ebx
mov r11, rbx
mov r9d, ebx
test rsi, rsi
je 0x18005d781
mov rax, rbx
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [r10 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + r14]
cmp eax, r8d
je 0x18005d778
cmp r8d, 0xffffffff
jne 0x18005d7cd
inc edx
mov eax, edx
cmp rax, rsi
jb 0x18005d760
lea rax, [r14 + r11]
mov r14, qword [rbp + 0x77]
test rax, rax
je 0x18005d89e
mov rcx, qword [r14]
cmp byte [rcx], 0xe9
jne 0x18005d7ea
movsxd rsi, dword [rcx + 1]
add rsi, 5
add rsi, rcx
mov rax, qword gs:[0x60]
mov rdx, qword [rax + 0x10]
movsxd rax, dword [rdx + 0x3c]
cmp rsi, rdx
jbe 0x18005d7e6
mov eax, dword [rax + rdx + 0x50]
add rax, rdx
cmp rsi, rax
jae 0x18005d7e6
mov r15d, dword [rbp + 0x67]
jmp 0x18005d7ed
inc r9d
inc r11
movsxd rax, r9d
cmp rax, r13
jae 0x18005d89a
mov edx, ebx
jmp 0x18005d751
mov r15d, dword [rbp + 0x67]
mov rsi, rcx
mov dword [rbp - 0x11], 0xf7
mov dword [rbp - 0xd], 0xffffffff
mov eax, dword [0x18021e7e4]
mov dword [rbp - 9], eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 5], xmm0
mov dword [rbp + 0xb], ebx
mov qword [rbp + 0xf], 0x40
mov ecx, 0x28
call fcn.1800c4130
mov rdi, rax
mov r8d, 0x28
lea rdx, [rbp - 0x11]
mov rcx, rax
call fcn.1800eac60
lea r12, [rdi + 0x28]
or r15d, 2
mov dword [rbp + 0x67], r15d
mov r10, rbx
mov r9d, ebx
mov eax, ebx
mov rcx, rbx
nop dword [rax]
mov r8d, dword [rdi + rcx*4]
lea ecx, [rax + r9]
movzx ecx, byte [rcx + rsi]
cmp ecx, r8d
je 0x18005d867
cmp r8d, 0xffffffff
jne 0x18005d883
inc eax
mov ecx, eax
cmp rcx, 0xa
jb 0x18005d850
lea rax, [r10 + rsi]
mov r10, qword [rbp - 0x59]
test rax, rax
je 0x18005d89e
mov sil, 1
jmp 0x18005d8a1
inc r9d
inc r10
movsxd rax, r9d
cmp rax, 0x3f6
jb 0x18005d848
mov r10, qword [rbp - 0x59]
jmp 0x18005d89e
mov r14, qword [rbp + 0x77]
xor sil, sil
test r15b, 2
je 0x18005d8fa
and r15d, 0xfffffffd
mov dword [rbp + 0x67], r15d
test rdi, rdi
je 0x18005d8fa
sub r12, rdi
sar r12, 2
lea rdx, [r12*4]
cmp rdx, 0x1000
jb 0x18005d8e8
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x18005dc62
mov rdi, rcx
mov rcx, rdi
call fcn.1800c4128
mov rdi, rbx
mov r12, rbx
mov r10, qword [rbp - 0x59]
test r15b, 1
je 0x18005d945
and r15d, 0xfffffffe
mov dword [rbp + 0x67], r15d
test r10, r10
je 0x18005d945
mov rdx, qword [rbp - 0x49]
sub rdx, r10
and rdx, 0xfffffffffffffffc
mov rax, r10
cmp rdx, 0x1000
jb 0x18005d93d
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005dc5c
mov rcx, r10
call fcn.1800c4128
test sil, sil
jne 0x18005da31
mov eax, dword [rbp + 0x6f]
inc eax
mov dword [rbp + 0x6f], eax
add r14, 8
mov qword [rbp + 0x77], r14
cmp eax, 0x150
jl 0x18005d650
movups xmm0, xmmword [str.pQPQFER_]
movaps xmmword [rbp - 0x59], xmm0
movsd xmm0, qword [0x1800fc658]
movsd qword [rbp - 0x49], xmm0
mov eax, dword [0x1800fc660]
mov dword [rbp - 0x41], eax
lea rcx, [rbp - 0x59]
call fcn.180064b60
mov r10, rax
test rax, rax
je 0x18005da0b
mov edx, ebx
mov r9, rbx
movsxd r8, edx
add r8, r10
cmp byte [r8], 0xc3
jne 0x18005d9d9
mov rcx, r8
and ecx, 0xf
mov rax, r8
sub rax, rcx
cmp byte [rax + 0x10], 0x40
jne 0x18005d9d9
movzx ecx, byte [r8 - 1]
lea eax, [rcx - 0x58]
cmp al, 7
jbe 0x18005da41
cmp byte [r8 - 2], 0x41
jne 0x18005d9d9
sub cl, 0x58
cmp cl, 7
jbe 0x18005da41
test r8b, 0xf
jne 0x18005d9fe
cmp byte [r9 + r10], 0x40
jne 0x18005d9fe
movzx eax, byte [r9 + r10 + 1]
sub al, 0x50
cmp al, 7
ja 0x18005d9fe
movzx eax, byte [r9 + r10 + 2]
sub al, 0x50
cmp al, 7
jbe 0x18005da0e
inc edx
inc r9
cmp edx, 0xffff
jl 0x18005d9a0
mov r8, rbx
cmp byte [0x18021e7f0], 0
je 0x18005da60
mov rax, qword [0x18021e7f8]
test rax, rax
je 0x18005da85
cmp dword [rax + 0x14], 0
jge 0x18005da52
mov r10, rbx
mov r10, qword [rbx]
jmp 0x18005da8d
movsxd rax, dword [rbp + 0x6f]
mov qword [0x18021ebf8], rax
jmp 0x18005dc48
mov rax, r8
and eax, 0xf
je 0x18005da0e
sub r8, rax
add r8, 0x10
jmp 0x18005da0e
mov rax, qword [rax]
mov rcx, qword [rax]
mov r10, qword [rcx]
mov r10, qword [r10]
jmp 0x18005da8d
mov rax, qword [0x18021e800]
test rax, rax
je 0x18005da85
cmp dword [rax + 0xc], 0
jge 0x18005da7a
mov r10, rbx
mov r10, qword [rbx]
jmp 0x18005da8d
mov rax, qword [rax]
mov r10, qword [rax]
mov r10, qword [r10]
jmp 0x18005da8d
mov r1pe_dos_header, qword [0]
movsd xmm0, qword [0x1800fcbb0]
mov ecx, dword [0x1800fcbb8]
movzx eax, byte [0x1800fcbbc]
movsd qword [rbp - 0x59], xmm0
mov dword [rbp - 0x51], ecx
mov byte [rbp - 0x4d], al
cmp dword [0x18011f090], 2
jl 0x18005dc00
movdqa xmm5, xmmword [0x18010bf40]
movdqa xmm2, xmmword [0x18010ba90]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm5
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x18010bb60]
psubd xmm2, xmm0
movdqa xmm4, xmmword [0x18010bc10]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x18010bc70]
movd xmm0, dword [0x1800fcbb0]
xorps xmm2, xmm0
movd dword [rbp - 0x59], xmm2
movdqa xmm2, xmmword [0x18010bab0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm5
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x18010bb60]
psubd xmm2, xmm0
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x18010bc70]
movd xmm0, dword [rbp - 0x55]
xorps xmm2, xmm0
movd dword [rbp - 0x55], xmm2
movdqa xmm3, xmmword [0x18010bac0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm5
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x18010bb60]
psubd xmm3, xmm0
andps xmm3, xmm4
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmmword [0x18010bc70]
movd xmm0, ecx
xorps xmm3, xmm0
movd dword [rbp - 0x51], xmm3
mov ebx, 0xc
mov eax, ebx
lea r9, [rbp - 0x59]
add r9, rax
nop dword [rax]
mov eax, 0x4d4873ed
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, bl
sub al, cl
add al, 0x31
xor byte [r9], al
inc ebx
lea r9, [r9 + 1]
cmp ebx, 0xd
jl 0x18005dc10
mov rdx, r10
lea rcx, [rbp - 0x59]
call fcn.18005ad10
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1800c9fd4
nop
call fcn.1800c9fd4
nop
int3