Function at 0x140087c7c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rdi, rcx
call fcn.1400860e4
mov dword [rdi + 0x4f0], eax
test eax, eax
je 0x140088647
xor edx, edx
lea rcx, [rsp + 0x28]
call fcn.1400420a4
mov eax, dword [rsp + 0x2c]
mov dword [rdi + 0x8c], eax
mov eax, dword [rsp + 0x30]
mov dword [rdi + 0x94], eax
mov eax, dword [rsp + 0x34]
mov dword [rdi + 0x90], eax
mov byte [rdi + 0x98], 0
mov eax, dword [rsp + 0x28]
mov dword [rdi + 0x494], eax
mov ebp, 0x28
cmp eax, 1
jb 0x140087e4a
lea edx, [rbp - 0x27]
lea rcx, [rsp + 0x28]
call fcn.1400420a4
mov r12d, dword [rsp + 0x28]
mov r14d, dword [rsp + 0x2c]
mov r13d, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x34]
mov eax, ebp
and al, 1
xor ecx, ecx
cmp al, 1
sete cl
mov dword [rdi + 0x4f4], ecx
mov ecx, ebp
and cl, 0x20
xor eax, eax
cmp cl, 0x20
sete al
mov dword [rdi + 0x4fc], eax
mov eax, ebp
and al, 0x10
xor ecx, ecx
cmp al, 0x10
sete cl
mov dword [rdi + 0x4f8], ecx
test ecx, ecx
je 0x140087dbb
mov ecx, 0x28
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140087d72
mov rcx, rax
call fcn.1400aeed0
jmp 0x140087d74
xor eax, eax
mov qword [rdi + 0x630], rax
mov rcx, rdi
call fcn.140087c3c
movss dword [rdi + 0x77c], xmm0
mulss xmm0, dword [0x1401d4544]
cvttss2si rcx, xmm0
mov rax, qword [rdi + 0x630]
mov qword [rax + 0x10], rcx
mov rbx, qword [rdi + 0x630]
call fcn.140045fd8
mov rdx, rbx
mov rcx, qword [rax + 0x68]
call fcn.1400446e0
mov eax, r12d
shr eax, 8
and eax, 0xf
mov dword [rdi + 0x4ac], eax
mov eax, r12d
shr eax, 4
and eax, 0xf
mov dword [rdi + 0x4b0], eax
mov eax, r12d
and eax, 0xf
mov dword [rdi + 0x4b4], eax
and r12d, 0xfff
mov dword [rdi + 0x4c0], r12d
mov dword [rdi + 0x4d4], r14d
mov dword [rdi + 0x4d8], r13d
mov dword [rdi + 0x4dc], ebp
shr ebp, 9
and ebp, 1
mov dword [rdi + 0x500], ebp
shr r13d, 0x1f
mov dword [rdi + 0x524], r13d
test r13d, r13d
je 0x140087e45
mov edx, 0x40000000
lea rcx, [rsp + 0x28]
call fcn.1400420a4
mov r11d, dword [rsp + 0x28]
mov dword [rdi + 0x49c], r11d
mov ebp, 0x28
jmp 0x140087e4a
mov ebp, 0x28
mov edx, 0x80000000
lea rcx, [rsp + 0x28]
call fcn.1400420a4
mov r11d, dword [rsp + 0x28]
mov dword [rdi + 0x498], r11d
cmp r11d, 0x80000001
jb 0x140087ea9
mov edx, 0x80000001
lea rcx, [rsp + 0x28]
call fcn.1400420a4
mov r11d, dword [rsp + 0x2c]
mov dword [rdi + 0x4e0], r11d
mov eax, dword [rsp + 0x30]
mov dword [rdi + 0x4e4], eax
mov eax, dword [rsp + 0x34]
mov dword [rdi + 0x4e8], eax
shr eax, 0x14
and eax, 1
mov dword [rdi + 0x51c], eax
mov rcx, rdi
call fcn.140086104
mov dword [rdi + 0x56c], eax
mov rcx, rdi
call fcn.140086140
mov dword [rdi + 0x570], eax
mov rcx, rdi
call fcn.140086178
mov dword [rdi + 0x574], eax
mov rcx, rdi
call fcn.1400861b0
mov dword [rdi + 0x578], eax
mov rcx, rdi
call fcn.1400861e8
mov dword [rdi + 0x57c], eax
mov rcx, rdi
call fcn.140086224
mov dword [rdi + 0x580], eax
mov rcx, rdi
call fcn.140086260
mov dword [rdi + 0x584], eax
mov rcx, rdi
call fcn.140086298
mov dword [rdi + 0x588], eax
mov rcx, rdi
call fcn.1400862d4
mov dword [rdi + 0x58c], eax
mov rcx, rdi
call fcn.140086310
mov dword [rdi + 0x590], eax
mov rcx, rdi
call fcn.14008634c
mov dword [rdi + 0x594], eax
mov rcx, rdi
call fcn.140086384
mov dword [rdi + 0x598], eax
mov rcx, rdi
call fcn.1400863bc
mov dword [rdi + 0x59c], eax
mov rcx, rdi
call fcn.1400863f4
mov dword [rdi + 0x5a0], eax
mov rcx, rdi
call fcn.140086430
mov dword [rdi + 0x5a4], eax
mov rcx, rdi
call fcn.14008646c
mov dword [rdi + 0x5a8], eax
mov rcx, rdi
call fcn.1400864a8
mov dword [rdi + 0x5ac], eax
mov rcx, rdi
call fcn.1400864dc
mov dword [rdi + 0x5b0], eax
mov rcx, rdi
call fcn.140086530
mov dword [rdi + 0x5b4], eax
mov rcx, rdi
call fcn.14008657c
mov dword [rdi + 0x5b8], eax
mov rcx, rdi
call fcn.140086618
mov dword [rdi + 0x5bc], eax
mov rcx, rdi
call fcn.14008664c
mov dword [rdi + 0x5c0], eax
mov rcx, rdi
call fcn.1400865e4
mov dword [rdi + 0x5c4], eax
mov rcx, rdi
call fcn.1400865b0
mov dword [rdi + 0x5c8], eax
mov rcx, rdi
call fcn.140086680
mov dword [rdi + 0x5cc], eax
mov rcx, rdi
call fcn.1400866b4
mov dword [rdi + 0x5d0], eax
mov rcx, rdi
call fcn.1400866e8
mov dword [rdi + 0x5d4], eax
mov rcx, rdi
call fcn.14008671c
mov dword [rdi + 0x5d8], eax
mov rcx, rdi
call fcn.140086750
mov dword [rdi + 0x5dc], eax
mov rcx, rdi
call fcn.140086784
mov dword [rdi + 0x5e0], eax
mov rcx, rdi
call fcn.1400867b8
mov dword [rdi + 0x5e4], eax
mov rcx, rdi
call fcn.1400867f4
mov dword [rdi + 0x5ec], eax
mov rcx, rdi
call fcn.14008684c
mov dword [rdi + 0x5f0], eax
mov rcx, rdi
call fcn.140086888
mov dword [rdi + 0x5f4], eax
mov rcx, rdi
call fcn.1400868c0
mov dword [rdi + 0x5f8], eax
mov rcx, rdi
call fcn.1400868f4
mov dword [rdi + 0x5fc], eax
mov rcx, rdi
call fcn.140086928
mov dword [rdi + 0x600], eax
mov rcx, rdi
call fcn.14008695c
mov dword [rdi + 0x604], eax
mov rcx, rdi
call fcn.140086998
mov dword [rdi + 0x608], eax
mov rcx, rdi
call fcn.1400869cc
mov dword [rdi + 0x60c], eax
mov rcx, rdi
call fcn.140086a00
mov dword [rdi + 0x610], eax
mov rcx, rdi
call fcn.140087b5c
lea rdx, str.GenuineIntel
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
je 0x140088535
lea rdx, str.GenuineIotel
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
je 0x140088535
lea rdx, str.AuthenticAMD
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x14008817c
lea rbx, [rdi + 0x10c]
lea r8, str.AMD_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x30
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140088175
mov rcx, rax
call fcn.1400b5334
jmp 0x140088177
xor eax, eax
jmp 0x140088570
lea rdx, str.HygonGenuine
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x1400881d3
lea rbx, [rdi + 0x10c]
lea r8, str.HygonGenuine_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x30
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400881cc
mov rcx, rax
call fcn.1400b4ed0
jmp 0x1400881ce
xor eax, eax
jmp 0x140088570
lea rdx, str.CyrixInstead
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x14008822a
lea rbx, [rdi + 0x10c]
lea r8, str.Cyrix_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x48
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140088223
mov rcx, rax
call fcn.1400b37d8
jmp 0x140088225
xor eax, eax
jmp 0x140088570
lea rdx, str.CentaurHauls
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x14008827f
lea rbx, [rdi + 0x10c]
lea r8, str.VIA_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140088278
mov rcx, rax
call fcn.1400b22d8
jmp 0x14008827a
xor eax, eax
jmp 0x140088570
lea rdx, str.__Shanghai
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x1400882b6
lea rbx, [rdi + 0x10c]
lea r8, str.Zhaoxin_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
jmp 0x140088580
lea rdx, str.GenuineTMx86
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x14008830d
lea rbx, [rdi + 0x10c]
lea r8, str.Transmeta_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x30
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140088306
mov rcx, rax
call fcn.1400b1bf4
jmp 0x140088308
xor eax, eax
jmp 0x140088570
lea rdx, str.UMC_UMC_UMC
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x140088362
lea rbx, [rdi + 0x10c]
lea r8, str.UMC_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14008835b
mov rcx, rax
call fcn.1400b1a40
jmp 0x14008835d
xor eax, eax
jmp 0x140088570
lea rdx, str.NexGenDriven
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x1400883be
lea rbx, [rdi + 0x10c]
lea r8, str.NexGen_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x38
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400883b7
mov edx, 1
mov rcx, rax
call fcn.1400b1494
jmp 0x1400883b9
xor eax, eax
jmp 0x140088570
lea rdx, str.RiseRiseRise
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x140088413
lea rbx, [rdi + 0x10c]
lea r8, str.Rise_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14008840c
mov rcx, rax
call fcn.1400b11d8
jmp 0x14008840e
xor eax, eax
jmp 0x140088570
lea rdx, str.SiS_SiS_SiS
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x140088468
lea rbx, [rdi + 0x10c]
lea r8, str.SiS_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140088461
mov rcx, rax
call fcn.1400b1028
jmp 0x140088463
xor eax, eax
jmp 0x140088570
lea rdx, str.Geode_by_NSC
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x1400884bf
lea rbx, [rdi + 0x10c]
lea r8, str.National_Semiconductor_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x48
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400884b8
mov rcx, rax
call fcn.1400b37d8
jmp 0x1400884ba
xor eax, eax
jmp 0x140088570
lea rdx, str.Vortex86_SoC
lea rcx, [rdi + 0x8c]
call fcn.1401593e0
test eax, eax
jne 0x140088511
lea rbx, [rdi + 0x10c]
lea r8, str.DMP_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14008850d
mov rcx, rax
call fcn.1400b0a30
jmp 0x14008850f
xor eax, eax
jmp 0x140088570
lea rbx, [rdi + 0x10c]
lea r9, [rdi + 0x8c]
lea r8, str._s_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140044464
jmp 0x140088580
lea rbx, [rdi + 0x10c]
lea r8, str.Intel_Processor
mov edx, 0x80
mov rcx, rbx
call fcn.140158644
mov ecx, 0x48
call fcn.14013f12c
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14008856e
mov rcx, rax
call fcn.1400af140
jmp 0x140088570
xor eax, eax
test rax, rax
je 0x140088580
mov rdx, rax
mov rcx, rdi
call fcn.140086c74
xor ebp, ebp
mov rcx, rbx
call fcn.140159970
test eax, eax
jle 0x1400885b0
lea rsi, [rdi + 0x30c]
mov al, byte [rsi - 0x200]
xor al, 0xe2
mov byte [rsi], al
inc ebp
inc rsi
mov rcx, rbx
call fcn.140159970
cmp ebp, eax
jl 0x140088595
movsxd rax, ebp
mov byte [rax + rdi + 0x30c], 0
xor esi, esi
lea rcx, [rdi + 0x18c]
call fcn.140159970
test eax, eax
jle 0x1400885f3
lea rbx, [rdi + 0x38c]
mov al, byte [rbx - 0x200]
xor al, 0x21
mov byte [rbx], al
inc esi
inc rbx
lea rcx, [rdi + 0x18c]
call fcn.140159970
cmp esi, eax
jl 0x1400885d4
movsxd rax, esi
mov byte [rax + rdi + 0x38c], 0
xor esi, esi
lea rcx, [rdi + 0x20c]
call fcn.140159970
test eax, eax
jle 0x140088637
lea rbx, [rdi + 0x40c]
mov cl, byte [rbx - 0x200]
xor cl, 0xb7
mov byte [rbx], cl
inc esi
inc rbx
lea rcx, [rdi + 0x20c]
call fcn.140159970
cmp esi, eax
jl 0x140088617
movsxd rcx, esi
mov byte [rcx + rdi + 0x40c], 0
mov eax, 1
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret