Function at 0x18004a530
Capabilities:
Encode data using xor

Disassembly:
push rbp
lea rbp, [rsp - 0x230]
sub rsp, 0x330
cmp qword [0x18005bf20], 0
jne 0x18004a556
xor al, al
add rsp, 0x330
pop rbp
ret
cmp qword [0x18005bf78], 0
mov qword [rsp + 0x328], rbx
mov qword [rsp + 0x320], rsi
mov qword [rsp + 0x318], rdi
mov qword [rsp + 0x310], r12
mov qword [rsp + 0x308], r13
mov qword [rsp + 0x300], r14
mov qword [rsp + 0x2f8], r15
movaps xmmword [rsp + 0x2e0], xmm6
je 0x18004a5a5
call fcn.18004afe0
mov rbx, qword [0x180053860]
movdqa xmm6, xmmword [0x180053850]
mov rcx, rbx
call fcn.18000a060
xor r12d, r12d
lea rsi, [0x180053870]
lea r14, [0x180053880]
mov rdi, rax
mov rax, qword [0x18005bf20]
mov r8d, r12d
lea r15, [0x180053890]
mov rcx, qword [rax]
mov r11, qword [rcx + 0x60]
test rbx, rbx
je 0x18004a67a
cmp rbx, 0x40
jb 0x18004a67f
lea rcx, [rbx - 1]
lea rax, [rsi - 1]
add rcx, rdi
add rax, rbx
cmp rdi, rax
ja 0x18004a613
cmp rcx, rsi
jae 0x18004a67f
mov rdx, rbx
and rdx, 0xffffffffffffffc0
mov r9, r14
lea rax, [rdi + 0x10]
mov r10, r15
sub r9, rdi
sub r10, rdi
mov rcx, rsi
sub rcx, rdi
movdqu xmm0, xmmword [rcx + rax - 0x10]
add r8, 0x40
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm0, xmm6
pxor xmm1, xmm6
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm0, xmmword [r9 + rax - 0x40]
movdqu xmmword [rax - 0x40], xmm1
pxor xmm0, xmm6
movdqu xmm1, xmmword [r10 + rax - 0x40]
movdqu xmmword [rax - 0x30], xmm0
pxor xmm1, xmm6
movdqu xmmword [rax - 0x20], xmm1
cmp r8, rdx
jb 0x18004a630
cmp r8, rbx
jae 0x18004a6a4
mov r9, rsi
lea rcx, [rdi + r8]
sub r9, rdi
mov rdx, rbx
sub rdx, r8
nop
movzx eax, byte [rcx + r9]
lea rcx, [rcx + 1]
xor al, 0xeb
mov byte [rcx - 1], al
sub rdx, 1
jne 0x18004a690
mov rcx, qword [0x18005bf20]
lea rax, [0x18005bf50]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, rbx
mov rdx, rdi
call r11
movabs r13, 0x7ffffffdfffe
test eax, eax
js 0x18004ad28
mov eax, dword [0x1800537dc]
mov r8, r12
movzx ecx, byte [0x1800537c8]
movsd xmm0, qword [str.a_a]
xor cl, 0x39
movzx edx, byte [0x1800537d8]
movsd qword [rsp + 0x30], xmm0
xor dl, 0x39
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
movsd xmm0, qword [str.ewkwzye9]
mov dword [rbp + 0x250], eax
movzx eax, word [0x1800537e0]
xor byte [rbp + 0x251], 0x32
xor byte [rbp + 0x252], 0x33
xor byte [rbp + 0x253], 0x34
movsd qword [rsp + 0x40], xmm0
xor byte [rsp + 0x41], 0x32
xor byte [rsp + 0x42], 0x33
xor byte [rsp + 0x43], 0x34
xor byte [rsp + 0x44], 0x35
xor byte [rsp + 0x45], 0x36
xor byte [rsp + 0x46], 0x37
xor byte [rsp + 0x47], 0x38
mov word [rbp + 0x254], ax
xor al, 0x35
xor byte [rbp + 0x255], 0x36
mov byte [rbp + 0x254], al
lea rax, [rbp + 0x250]
mov byte [rsp + 0x38], cl
lea rcx, [rsp + 0x30]
mov qword [rbp + 0x10], rax
mov rax, qword [0x18005bf20]
mov qword [rbp - 0x30], rcx
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x30], 0x50
mov dword [rbp - 0x28], r12d
mov qword [rbp - 0x24], 0x10
mov qword [rbp - 0x1c], r12
mov dword [rbp - 0x14], r12d
mov byte [rsp + 0x40], 0x54
mov byte [rsp + 0x48], dl
mov qword [rbp - 0x10], rcx
mov dword [rbp - 8], r12d
mov qword [rbp - 4], 0x10
mov qword [rbp + 4], 8
mov dword [rbp + 0xc], r12d
mov byte [rbp + 0x250], 0x43
mov dword [rbp + 0x18], r12d
mov qword [rbp + 0x1c], 0x1c
mov qword [rbp + 0x24], 0x10
mov dword [rbp + 0x2c], r12d
mov rcx, qword [rax]
mov r10, qword [rcx + 0x58]
test rbx, rbx
je 0x18004a8d3
cmp rbx, 0x40
jb 0x18004a8af
lea rcx, [rbx - 1]
lea rax, [rsi - 1]
add rcx, rdi
add rax, rbx
cmp rdi, rax
ja 0x18004a83f
cmp rcx, rsi
jae 0x18004a8af
mov r9, rbx
and r9, 0xffffffffffffffc0
sub r14, rdi
lea rax, [rdi + 0x10]
sub r15, rdi
mov rcx, rsi
sub rcx, rdi
nop word [rax + rax]
movdqu xmm0, xmmword [rax + rcx - 0x10]
add r8, 0x40
movdqu xmm1, xmmword [rax + rcx]
lea rax, [rax + 0x40]
pxor xmm0, xmm6
pxor xmm1, xmm6
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm0, xmmword [rax + r14 - 0x40]
movdqu xmmword [rax - 0x40], xmm1
pxor xmm0, xmm6
movdqu xmm1, xmmword [rax + r15 - 0x40]
movdqu xmmword [rax - 0x30], xmm0
pxor xmm1, xmm6
movdqu xmmword [rax - 0x20], xmm1
cmp r8, r9
jb 0x18004a860
cmp r8, rbx
jae 0x18004a8d3
sub rsi, rdi
lea rcx, [rdi + r8]
mov rdx, rbx
sub rdx, r8
nop dword [rax]
movzx eax, byte [rcx + rsi]
lea rcx, [rcx + 1]
xor al, 0xeb
mov byte [rcx - 1], al
sub rdx, 1
jne 0x18004a8c0
mov rcx, qword [0x18005bf20]
lea rax, [0x18005bf58]
mov qword [rsp + 0x28], rax
lea rdx, [rbp - 0x30]
mov r9, rdi
mov qword [rsp + 0x20], rbx
mov r8d, 3
call r10
test eax, eax
js 0x18004ad28
mov rcx, qword [0x18005bf20]
lea r9, [0x18005bf60]
mov dword [rbp - 0x78], pe_nt_image_headers64
lea rdx, [rbp - 0x78]
mov dword [rbp - 0x74], 2
xor r8d, r8d
mov dword [rbp - 0x70], 4
mov qword [rbp - 0x6c], 0x10000
mov dword [rbp - 0x64], r12d
mov rax, qword [rcx]
call qword [rax + 0x18]
test eax, eax
js 0x18004ad28
mov rsi, qword [0x180053868]
mov rcx, rsi
call fcn.18000a060
mov rcx, qword [0x18005bf20]
mov rbx, rax
lea r9, [0x180053bf0]
mov r8, r12
mov rdx, qword [rcx]
mov r14, qword [rdx + 0x78]
test rsi, rsi
je 0x18004aa0b
cmp rsi, 0x40
jb 0x18004aa10
lea rcx, [rsi - 1]
add rcx, rax
lea rax, [r9 - 1]
add rax, rsi
cmp rbx, rax
ja 0x18004a99c
cmp rcx, r9
jae 0x18004aa10
mov rdx, rsi
and rdx, 0xffffffffffffffc0
lea r10, [0x180053c00]
mov rcx, r9
lea r11, [0x180053c10]
sub r10, rbx
sub r11, rbx
lea rax, [rbx + 0x10]
sub rcx, rbx
movdqu xmm0, xmmword [rcx + rax - 0x10]
add r8, 0x40
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm0, xmm6
pxor xmm1, xmm6
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm0, xmmword [r10 + rax - 0x40]
movdqu xmmword [rax - 0x40], xmm1
pxor xmm0, xmm6
movdqu xmm1, xmmword [r11 + rax - 0x40]
movdqu xmmword [rax - 0x30], xmm0
pxor xmm1, xmm6
movdqu xmmword [rax - 0x20], xmm1
cmp r8, rdx
jb 0x18004a9c1
cmp r8, rsi
jae 0x18004aa34
sub r9, rbx
lea rcx, [rbx + r8]
mov rdx, rsi
sub rdx, r8
nop dword [rax]
movzx eax, byte [rcx + r9]
lea rcx, [rcx + 1]
xor al, 0xeb
mov byte [rcx - 1], al
sub rdx, 1
jne 0x18004aa20
mov rcx, qword [0x18005bf20]
lea rax, [0x18005bf70]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, rsi
mov rdx, rbx
call r14
test eax, eax
js 0x18004ad0f
xor eax, eax
lea rcx, [rbp + 0xf5]
xor edx, edx
mov dword [rbp + 0xd4], eax
mov r8d, 0xe3
call fcn.18000a040
mov rcx, qword [0x18005bf20]
lea r8, [0x18005bf90]
movdqa xmm0, xmmword [0x180053840]
lea rdx, [rbp + 0xd0]
mov dword [rbp + 0xd0], r12d
mov dword [rbp + 0xd8], 1
mov dword [rbp + 0xdc], 5
movdqu xmmword [rbp + 0xe0], xmm0
mov dword [rbp + 0xf0], 1
mov byte [rbp + 0xf4], 0xf
mov rax, qword [rcx]
call qword [rax + 0xa0]
test eax, eax
js 0x18004ad0f
mov rcx, qword [0x18005bf20]
lea r8, [0x18005bf88]
xorps xmm0, xmm0
mov qword [rbp + 0x50], r12
movdqu xmmword [rbp + 0x38], xmm0
mov dword [rbp + 0x30], 3
lea rdx, [rbp + 0x30]
mov dword [rbp + 0x34], 1
mov dword [rbp + 0x4c], 1
mov dword [rbp + 0x48], 1
mov rax, qword [rcx]
call qword [rax + 0xb0]
test eax, eax
js 0x18004ad0f
movdqa xmm0, xmmword [0x180053820]
lea r8, [0x18005bf98]
mov rcx, qword [0x18005bf20]
lea rdx, [rbp + 0x58]
movdqu xmmword [rbp + 0x58], xmm0
mov dword [rbp + 0x6c], 1
mov dword [rbp + 0x74], 1
mov dword [rbp + 0x70], 1
mov dword [rbp + 0x78], 8
movups xmm0, xmmword [rbp + 0x6c]
mov dword [rbp + 0x68], r12d
movups xmmword [rbp + 0x7c], xmm0
mov rax, qword [rcx]
call qword [rax + 0xa8]
test eax, eax
js 0x18004ad0f
call fcn.180014590
mov qword [rsp + 0x50], r12
lea r9, [rbp + 0x248]
mov dword [rbp + 0x240], r12d
lea r8, [rbp + 0x240]
mov dword [rbp + 0x248], r12d
lea rdx, [rsp + 0x50]
mov rcx, qword [rax + 0xa0]
mov r14, rax
mov qword [rsp + 0x20], r12
call fcn.180025700
mov ecx, dword [rbp + 0x240]
lea r9, [rbp + 0x258]
mov eax, dword [rbp + 0x248]
lea r8, [rbp - 0x60]
mov dword [rsp + 0x5c], eax
lea rdx, [rsp + 0x58]
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x60], rax
lea eax, [rcx*4]
mov dword [rsp + 0x58], ecx
mov rcx, qword [0x18005bf20]
mov qword [rsp + 0x6c], 1
mov qword [rsp + 0x7c], r12
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x64], 1
mov dword [rsp + 0x68], 0x1c
mov dword [rsp + 0x74], r12d
mov dword [rsp + 0x78], 8
mov dword [rbp - 0x58], eax
mov dword [rbp - 0x54], r12d
mov qword [rbp + 0x258], r12
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x18004ad0f
mov eax, dword [rsp + 0x60]
lea r9, [0x18005bf80]
mov rcx, qword [0x18005bf20]
lea r8, [rbp - 0x50]
mov rdx, qword [rbp + 0x258]
mov qword [rbp - 0x40], r12
mov dword [rbp - 0x50], 0x1c
mov qword [rbp - 0x4c], 4
mov dword [rbp - 0x44], eax
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, qword [rbp + 0x258]
mov esi, eax
lea rdx, [rcx - 0x10000]
cmp rdx, r13
ja 0x18004aca0
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov qword [rbp + 0x258], r12
test esi, esi
js 0x18004ad0f
mov rcx, qword [r14 + 0xa0]
lea r8, [0x18005bf78]
mov rax, qword [0x18005bf80]
lea rdx, [rbp + 0x90]
movdqa xmm1, xmmword [0x180053830]
xorps xmm0, xmm0
mov qword [rcx + 8], rax
mov rcx, qword [0x18005bf20]
mov qword [rbp + 0xa0], r12
movdqu xmmword [rbp + 0xac], xmm0
mov dword [rbp + 0xa8], 8
movdqu xmmword [rbp + 0x90], xmm1
mov qword [rbp + 0xbc], r12
mov rax, qword [rcx]
call qword [rax + 0xb8]
test eax, eax
setns sil
jmp 0x18004ad12
xor sil, sil
lea rax, [rbx - 0x10000]
cmp rax, r13
ja 0x18004ad2b
mov rcx, rbx
call fcn.18000a080
jmp 0x18004ad2b
xor sil, sil
movaps xmm6, xmmword [rsp + 0x2e0]
lea rcx, [rdi - 0x10000]
mov r15, qword [rsp + 0x2f8]
cmp rcx, r13
mov r13, qword [rsp + 0x308]
mov r14, qword [rsp + 0x300]
mov r12, qword [rsp + 0x310]
mov rbx, qword [rsp + 0x328]
ja 0x18004ad6f
mov rcx, rdi
call fcn.18000a080
mov rdi, qword [rsp + 0x318]
movzx eax, sil
mov rsi, qword [rsp + 0x320]
add rsp, 0x330
pop rbp
ret