Function at 0x140005780
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x290]
sub rsp, 0x390
mov rbx, r8
mov rsi, rdx
call fcn.140004200
mov rcx, rax
test rax, rax
je 0x14000603c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov r14, 0xffffffffffffffff
xor r15d, r15d
test rbx, rbx
je 0x14000580c
cmp rbx, 0x10000
jae 0x1400057f6
movzx edx, bx
lea rcx, [rsp + 0x38]
call fcn.140004c20
jmp 0x140005820
mov rax, r14
nop dword [rax]
inc rax
cmp word [rbx + rax*2], r15w
jne 0x140005800
jmp 0x14000580f
mov eax, r15d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140003ad0
nop
mov rbx, qword [rsp + 0x38]
movsxd rdi, dword [rbx - 0x10]
test edi, edi
js 0x140006031
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140005853
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140003df0
mov rbx, qword [rsp + 0x38]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.140047b5c
cmp edi, dword [rbx - 0xc]
jg 0x140006031
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], r15w
mov byte [rbp + 0x2d0], 0
mov edi, dword [rbx - 0x10]
test edi, edi
je 0x1400058fe
js 0x140006031
cmp word [rbx], 0x40
jne 0x1400058fe
mov byte [rbp + 0x2d0], 1
cmp edi, 1
jl 0x1400058fe
dec edi
lea esi, [rdi + 1]
cmp dword [rbx - 8], 1
jle 0x1400058b5
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.140003cd0
mov rbx, qword [rsp + 0x38]
movsxd r8, esi
add r8, r8
lea rdx, [rbx + 2]
je 0x1400058db
test rbx, rbx
je 0x140006047
test rdx, rdx
je 0x140006047
mov rcx, rbx
call fcn.1400414b0
test edi, edi
js 0x140006031
cmp edi, dword [rbx - 0xc]
jg 0x140006031
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], r15w
mov rsi, qword [rbp + 0x2d8]
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x70]
call fcn.140041b60
lea rcx, [rsp + 0x50]
call fcn.1400176f0
nop
call fcn.140004200
mov rcx, rax
test rax, rax
je 0x140006062
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
lea r8, [rbp - 0x70]
call fcn.140007240
cmp al, 1
jne 0x140005b3b
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.140044b14
test eax, eax
jne 0x140005b3b
mov dword [rbp + 0x2e8], r15d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x70], rax
call fcn.140004200
mov rcx, rax
test rax, rax
je 0x14000606d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x70]
cmp rax, 0x10000
jae 0x1400059af
lea rax, [rbp - 0x70]
movzx edx, ax
lea rcx, [rsp + 0x48]
call fcn.140004c20
jmp 0x1400059d2
lea rcx, [rbp - 0x70]
mov rax, r14
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400059b6
mov r8d, eax
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x48]
call fcn.140003ad0
nop
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x50]
call fcn.140017780
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140005a41
cmp dword [rdi + 0x10], 0
jl 0x140005a32
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140005a32
call fcn.140004a30
mov rbx, rax
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x140005a27
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x140005a41
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140003ad0
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005a60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp + 0x90]
call fcn.140041b60
mov dword [rsp + 0x28], 0x100
lea rax, [rbp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, str.LastUsedCodeHash
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017c50
mov rdi, qword [rsp + 0x30]
cmp al, 1
jne 0x140005ae0
mov rax, rdi
lea rdx, [rbp + 0x90]
sub rdx, rdi
nop
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140005ad7
add rax, 2
test cx, cx
jne 0x140005ac0
mov eax, r15d
jmp 0x140005adc
sbb eax, eax
or eax, 1
test eax, eax
je 0x140005b1c
mov byte [rsp + 0x28], 0
lea rax, [rbp + 0x2e8]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017ad0
cmp al, 1
jne 0x140005b36
cmp dword [rbp + 0x2e8], 1
jne 0x140005b36
mov r8, qword [rsp + 0x38]
mov rdx, rsi
call fcn.140006230
mov ebx, eax
mov dword [0x14007b9f8], eax
jmp 0x140005fc4
mov rbx, qword [rsp + 0x38]
lea r13, [rbx - 0x18]
mov rcx, r13
call fcn.140004a30
add rax, 0x18
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call fcn.140017780
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140005bbe
cmp dword [rdi + 0x10], 0
jl 0x140005baf
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140005baf
call fcn.140004a30
mov rbx, rax
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x140005ba4
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x140005bbe
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140003ad0
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005bdc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x30]
mov r9, rdi
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017920
lea r9, [rbp - 0x70]
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017920
mov rbx, qword [rsp + 0x38]
mov r9, rbx
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017920
mov dword [0x14007b9f8], 0xe
call fcn.140004200
mov rcx, rax
test rax, rax
je 0x140006078
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea r9, [rsp + 0x40]
mov rdx, rbx
call fcn.140006090
cmp al, 1
jne 0x140005f9a
mov rsi, r14
inc rsi
cmp word [rbx + rsi*2], 0
jne 0x140005c80
lea r12, [rsi*2 + 4]
mov rcx, r12
call fcn.14003f364
mov r15, rax
mov ecx, esi
xor ecx, 0x92781293
mov dword [rax], ecx
xor eax, eax
lea r8d, [rax + 7]
mov r9d, eax
test rsi, rsi
je 0x140005cdd
mov edx, eax
nop word [rax + rax]
add r8d, 7
movzx ecx, r8w
xor cx, word [rbx + rdx*2]
mov word [r15 + rdx*2 + 4], cx
inc r9d
mov edx, r9d
cmp rdx, rsi
jb 0x140005cc0
test r12d, r12d
je 0x140005d1a
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r15
lea r9, str.HardwareConfig
mov r8, qword [0x14007ba00]
mov rdx, 0xffffffff80000002
lea rcx, [0x14007b9e1]
call fcn.140017fa0
mov edx, 4
mov rcx, r15
call fcn.14003f320
mov rcx, r13
call fcn.140004a30
add rax, 0x18
mov qword [rsp + 0x68], rax
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.140017780
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140005d9a
cmp dword [rdi + 0x10], 0
jl 0x140005d8b
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140005d8b
call fcn.140004a30
mov rbx, rax
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x140005d80
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x140005d9a
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140003ad0
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005db9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, qword [rbp + 0x2d8]
lea rdx, str.EDDName
mov rcx, qword [0x14007ba08]
call fcn.140013900
mov r8, qword [rsp + 0x30]
cmp dword [r8 - 8], 1
jle 0x140005df2
mov edx, dword [r8 - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140003cd0
mov r8, qword [rsp + 0x30]
lea rdx, str.LastUsedCodeHash
mov rcx, qword [0x14007ba08]
call fcn.140013900
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi - 0x18]
call fcn.140004a30
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
movsxd rsi, dword [rbx - 0x10]
test esi, esi
js 0x140006026
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140005e4a
mov edx, esi
lea rcx, [rsp + 0x58]
call fcn.140003df0
mov rbx, qword [rsp + 0x58]
lea eax, [rsi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.140047b5c
cmp esi, dword [rbx - 0xc]
jg 0x140006026
mov dword [rbx - 0x10], esi
xor ecx, ecx
mov word [rbx + rsi*2], cx
cmp dword [rbx - 0x10], ecx
jl 0x140005e9a
lea rdx, str.trial
mov rcx, rbx
call fcn.140040c5c
test rax, rax
je 0x140005e9a
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x140005e9a
mov rcx, qword [0x14007ba08]
call fcn.140013840
cmp dword [rdi - 8], 1
jle 0x140005eb2
mov edx, dword [rdi - 0x10]
lea rcx, [rsp + 0x40]
call fcn.140003cd0
mov rdi, qword [rsp + 0x40]
mov r8, rdi
lea rdx, str.ItemName
mov rcx, qword [0x14007ba08]
call fcn.140013900
cmp byte [rbp + 0x2d0], 0
je 0x140005f75
mov rbx, qword [0x14007ba08]
call fcn.140004200
mov rcx, rax
test rax, rax
je 0x140006083
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x2d0], rax
lea rdi, [0x140068018]
lea rcx, [rbp + 0x2d0]
cmp rdi, 0x10000
jae 0x140005f1f
movzx edx, di
call fcn.140004c20
jmp 0x140005f2e
mov r8d, 3
mov rdx, rdi
call fcn.140003ad0
nop
lea rcx, [rbx + 0x18]
lea rdx, [rbp + 0x2d0]
call fcn.140013f60
mov rdx, qword [rbp + 0x2d0]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005f5f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8d, 1
mov rdx, rdi
mov rcx, rbx
call fcn.140013ad0
mov rbx, qword [rsp + 0x58]
mov dword [0x14007b9f8], 1
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005f9a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005fb9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [0x14007b9f8]
mov rdi, qword [rsp + 0x30]
lea rdx, [rdi - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005fdf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.140017750
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x140006009
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x3e0]
add rsp, 0x390
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.140003f50
nop
mov ecx, 0x80070057
call fcn.140003f50
nop
mov ecx, 0x80004005
call fcn.140003f50
nop
call fcn.14004458c
mov dword [rax], 0x16
call fcn.14004443c
mov ecx, 0x80070057
call fcn.140003f50
nop
mov ecx, 0x80004005
call fcn.140003f50
nop
mov ecx, 0x80004005
call fcn.140003f50
int3
mov ecx, 0x80004005
call fcn.140003f50
nop
mov ecx, 0x80004005
call fcn.140003f50
int3