Function at 0x14012cf50
Capabilities:
Check os version
Inspect section memory permissions
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x60
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
test rdx, rdx
jne 0x14012cf76
xor eax, eax
jmp 0x14012dd9a
mov qword [rcx + 0x10], rdx
lea rcx, [rdx + 0x2c]
xor edx, edx
lea r8d, [rdx + 0x40]
call fcn.140160e90
xor ebp, ebp
mov dword [rsp + 0x98], ebp
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SOFTWARERealtekGeneral
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14012d034
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0xa0], 4
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xa8]
xor r8d, r8d
lea rdx, str.HideAudioIcon
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14012d026
cmp dword [rsp + 0xa8], 4
jne 0x14012d026
cmp dword [rsp + 0x98], 1
jne 0x14012d026
or dword [rsi + 0x70], 0x400
test rbx, rbx
je 0x14012d034
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsi + 0x70]
bt eax, 0xa
jb 0x14012d068
bt eax, 0xe
jb 0x14012d068
bt dword [rsi + 0x15c], 0x11
jb 0x14012d068
cmp word [rsi + 0x44e], 0x103c
jne 0x14012d064
mov rcx, rdi
call fcn.1401359f0
test eax, eax
jne 0x14012d068
mov ecx, ebp
jmp 0x14012d06d
mov ecx, 1
mov rax, qword [rdi + 0x10]
xor ecx, dword [rax + 0x2c]
and ecx, 1
xor dword [rax + 0x2c], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x70]
shr eax, 4
xor eax, dword [rcx + 0x2c]
and eax, 4
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x70]
shl eax, 4
xor eax, dword [rcx + 0x30]
and eax, 0x8000000
xor dword [rcx + 0x30], eax
mov rax, qword [rdi + 0x10]
or dword [rax + 0x30], 1
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x104]
shl eax, 0x12
xor eax, dword [rcx + 0x30]
and eax, 0x100000
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x10c]
shl eax, 0xd
xor eax, dword [rcx + 0x34]
and eax, 0x40000
xor dword [rcx + 0x34], eax
test byte [rsi + 0x104], 4
jne 0x14012d0f0
test byte [rsi + 0x10c], 0x20
jne 0x14012d0f0
mov ecx, ebp
jmp 0x14012d0f5
mov ecx, 1
mov rax, qword [rdi + 0x10]
shl ecx, 0x13
xor ecx, dword [rax + 0x34]
and ecx, 0x80000
xor dword [rax + 0x34], ecx
test byte [rsi + 0x10c], 0x20
jne 0x14012d11f
bt dword [rsi + 0x15c], 0x12
jb 0x14012d11f
mov ecx, ebp
jmp 0x14012d124
mov ecx, 1
mov rax, qword [rdi + 0x10]
shl ecx, 0x14
xor ecx, dword [rax + 0x34]
and ecx, 0x100000
xor dword [rax + 0x34], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x6c]
shr eax, 7
xor eax, dword [rcx + 0x30]
and eax, 0x200
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x104]
shl eax, 0x12
xor eax, dword [rcx + 0x30]
and eax, 0x20000000
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x104]
shr eax, 7
xor eax, dword [rcx + 0x2c]
and eax, 0x20
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x104]
shl eax, 0x10
xor eax, dword [rcx + 0x30]
and eax, 0x40000000
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x104]
shr eax, 4
xor eax, dword [rcx + 0x30]
and eax, 0x800
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov al, byte [rcx + 0x107]
xor eax, dword [rcx + 0x34]
and eax, 0x10
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x108]
shr eax, 0x16
xor eax, dword [rcx + 0x34]
and eax, 8
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x108]
shr eax, 8
xor eax, dword [rcx + 0x34]
and eax, 0x800
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x144]
mov dword [rcx + 0x64], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x108]
shr eax, 0xb
xor eax, dword [rcx + 0x34]
and eax, 0x8000
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shl eax, 0x15
xor eax, dword [rcx + 0x34]
and eax, 0x1000000
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x10c]
shr eax, 0x12
xor eax, dword [rcx + 0x34]
and eax, 0x100
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x10c]
shr eax, 5
xor eax, dword [rcx + 0x34]
and eax, 0x4000000
xor dword [rcx + 0x34], eax
test byte [rsi + 0x110], 0x10
je 0x14012d278
mov eax, dword [rsi + 0x12c]
test al, 8
jne 0x14012d271
bt eax, 8
jae 0x14012d278
mov ecx, 1
jmp 0x14012d27a
mov ecx, ebp
mov rax, qword [rdi + 0x10]
shl ecx, 0x1d
xor ecx, dword [rax + 0x34]
and ecx, 0x20000000
xor dword [rax + 0x34], ecx
test byte [rsi + 0x110], 0x10
je 0x14012d2a7
bt dword [rsi + 0xdc], 0x19
jae 0x14012d2a7
mov ecx, 1
jmp 0x14012d2a9
mov ecx, ebp
mov rax, qword [rdi + 0x10]
shl ecx, 0x19
xor ecx, dword [rax + 0x30]
and ecx, 0x2000000
xor dword [rax + 0x30], ecx
mov rcx, qword [rdi + 0x10]
mov eax, ebp
bt dword [rsi + 0x110], 0x19
setb al
xor eax, dword [rcx + 0x3c]
and eax, 1
xor dword [rcx + 0x3c], eax
mov rcx, qword [rdi + 0x10]
mov eax, ebp
bt dword [rsi + 0x70], 0x13
setb al
shl eax, 3
xor eax, dword [rcx + 0x3c]
and eax, 8
xor dword [rcx + 0x3c], eax
mov rcx, qword [rdi + 0x10]
mov eax, ebp
bt dword [rsi + 0x110], 0x1d
setb al
shl eax, 0xc
xor eax, dword [rcx + 0x30]
and eax, 0x1000
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, ebp
bt dword [rsi + 0x114], 0xb
setb al
shl eax, 7
xor eax, dword [rcx + 0x3c]
and eax, 0x80
xor dword [rcx + 0x3c], eax
bt dword [rsi + 0x104], 0x1a
jb 0x14012d345
test byte [rsi + 0x187], 1
jne 0x14012d345
mov eax, ebp
jmp 0x14012d34a
mov eax, 1
mov rcx, qword [rdi + 0x10]
shl eax, 2
xor eax, dword [rcx + 0x34]
and eax, 4
xor dword [rcx + 0x34], eax
mov ecx, dword [rsi + 0x114]
shr ecx, 0x1b
and ecx, 1
mov rax, qword [rdi + 0x10]
mov dword [rax + 0x48], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shl eax, 0x13
xor eax, dword [rcx + 0x2c]
and eax, 0x800000
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shl eax, 8
xor eax, dword [rcx + 0x2c]
and eax, 0x1000
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shl eax, 0x11
xor eax, dword [rcx + 0x34]
and eax, 0x8000000
xor dword [rcx + 0x34], eax
test byte [rsi + 0x70], 0x80
jne 0x14012d3c8
test byte [rsi + 0x15c], 0x40
jne 0x14012d3c8
mov ecx, ebp
jmp 0x14012d3cd
mov ecx, 1
mov rax, qword [rdi + 0x10]
xor ecx, dword [rax + 0x4c]
and ecx, 1
xor dword [rax + 0x4c], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 6
xor eax, dword [rcx + 0x44]
and eax, 1
xor dword [rcx + 0x44], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 0x13
xor eax, dword [rcx + 0x2c]
and eax, 0x80
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, ebp
bt dword [rsi + 0x70], 0x1f
setb al
shl eax, 2
xor eax, dword [rcx + 0x3c]
and eax, 4
xor dword [rcx + 0x3c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shr eax, 0x13
xor eax, dword [rcx + 0x4c]
and eax, 2
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x6c]
shr eax, 0x13
xor eax, dword [rcx + 0x4c]
and eax, 4
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shr eax, 0x12
xor eax, dword [rcx + 0x4c]
and eax, 0x10
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 2
xor eax, dword [rcx + 0x4c]
and eax, 0x20
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x70]
shl eax, 9
xor eax, dword [rcx + 0x4c]
and eax, 0x200
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x70]
shl eax, 9
xor eax, dword [rcx + 0x4c]
and eax, 0x400
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shr eax, 0xd
xor eax, dword [rcx + 0x4c]
and eax, 0x800
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x118]
shr eax, 0x12
xor eax, dword [rcx + 0x4c]
and eax, 0x1000
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shl eax, 6
xor eax, dword [rcx + 0x4c]
and eax, 0x4000
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x11c]
shl eax, 0xb
xor eax, dword [rcx + 0x4c]
and eax, 0x8000
xor dword [rcx + 0x4c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x11c]
shr eax, 5
xor eax, dword [rcx + 0x50]
and eax, 1
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 8
xor eax, dword [rcx + 0x50]
and eax, 2
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x128]
shr eax, 6
xor eax, dword [rcx + 0x50]
and eax, 4
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 8
xor eax, dword [rcx + 0x2c]
and eax, 0x10
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 0xa
xor eax, dword [rcx + 0x50]
and eax, 8
xor dword [rcx + 0x50], eax
bt dword [rsi + 0x15c], 0xe
jb 0x14012d587
bt dword [rsi + 0x1a8], 0xe
jb 0x14012d587
mov ecx, ebp
jmp 0x14012d58c
mov ecx, 1
mov rax, qword [rdi + 0x10]
shl ecx, 4
xor ecx, dword [rax + 0x50]
and ecx, 0x10
xor dword [rax + 0x50], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x128]
shr eax, 0xa
xor eax, dword [rcx + 0x50]
and eax, 0x20
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x128]
shr eax, 9
xor eax, dword [rcx + 0x50]
and eax, 0x80
xor dword [rcx + 0x50], eax
bt dword [rsi + 0x70], 0xa
jb 0x14012d5e9
bt dword [rsi + 0x15c], 0x11
jb 0x14012d5e9
bt dword [rsi + 0x548], 0x16
jb 0x14012d5e9
mov ecx, ebp
jmp 0x14012d5ee
mov ecx, 1
mov rax, qword [rdi + 0x10]
shl ecx, 8
xor ecx, dword [rax + 0x50]
and ecx, 0x100
xor dword [rax + 0x50], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shl eax, 9
xor eax, dword [rcx + 0x30]
and eax, 0x400
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 8
xor eax, dword [rcx + 0x50]
and eax, 0x800
xor dword [rcx + 0x50], eax
bt dword [rsi + 0x184], 0xe
jae 0x14012d65c
mov rax, qword [rdi + 0x10]
or dword [rax + 0x4c], 0x80
mov rax, qword [rdi + 0x10]
or dword [rax + 0x4c], 0x100
mov rax, qword [rdi + 0x10]
and dword [rax + 0x4c], 0xfffffdff
bt dword [rsi + 0x184], 0x11
jae 0x14012d66e
mov rax, qword [rdi + 0x10]
or dword [rax + 0x4c], 0x40
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x1c8]
xor eax, dword [rcx + 0x50]
and eax, 0x1000
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x184]
shr eax, 0xf
xor eax, dword [rcx + 0x50]
and eax, 0x2000
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov ax, word [rsi + 0x186]
xor eax, dword [rcx + 0x50]
and eax, 0x8000
xor dword [rcx + 0x50], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x188]
shl eax, 0xe
xor eax, dword [rcx + 0x50]
and eax, 0x10000
xor dword [rcx + 0x50], eax
mov ecx, dword [rsi + 0x180]
shr ecx, 0x19
and ecx, 1
mov rax, qword [rdi + 0x10]
mov dword [rax + 0x54], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 7
xor eax, dword [rcx + 0x2c]
and eax, 0x40000
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 8
xor eax, dword [rcx + 0x58]
and eax, 4
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 7
xor eax, dword [rcx + 0x58]
and eax, 8
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x15c]
shr eax, 0x1b
xor eax, dword [rcx + 0x58]
and eax, 0x10
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x190]
shr eax, 3
xor eax, dword [rcx + 0x58]
and eax, 0x40
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x190]
shr eax, 2
xor eax, dword [rcx + 0x58]
and eax, 0x80
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x160]
shl eax, 0xf
xor eax, dword [rcx + 0x34]
and eax, 0x10000
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x190]
shr eax, 3
xor eax, dword [rcx + 0x58]
and eax, 0x100
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x160]
shl eax, 7
xor eax, dword [rcx + 0x58]
and eax, 0x200
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rsi + 0x190]
shr eax, 0xa
xor eax, dword [rcx + 0x58]
and eax, 0x400
xor dword [rcx + 0x58], eax
bt dword [rsi + 0x190], 0x1e
jae 0x14012d80a
mov eax, dword [0x14022e714]
test eax, eax
jne 0x14012d7f5
mov dword [0x14022e710], 0x114
lea rcx, [0x14022e710]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x14022e714]
cmp eax, 6
jne 0x14012d80a
cmp dword [0x14022e718], 2
jne 0x14012d80a
mov eax, 1
jmp 0x14012d80c
mov eax, ebp
mov rcx, qword [rdi + 0x10]
add eax, eax
xor eax, dword [rcx + 0x5c]
and eax, 2
xor dword [rcx + 0x5c], eax
mov eax, dword [rsi + 0x220]
mov ecx, 0x15e
test eax, eax
cmovne ecx, eax
mov rax, qword [rdi + 0x10]
mov dword [rax + 0x68], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x18c]
shr eax, 6
xor eax, dword [rcx + 0x58]
and eax, 0x800
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shl eax, 9
xor eax, dword [rcx + 0x58]
and eax, 0x1000
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shl eax, 9
xor eax, dword [rcx + 0x58]
and eax, 0x2000
xor dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shr eax, 5
xor eax, dword [rcx + 0x5c]
and eax, 1
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1cc]
shl eax, 2
xor eax, dword [rcx + 0x5c]
and eax, 4
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1cc]
shl eax, 2
xor eax, dword [rcx + 0x5c]
and eax, 8
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x194]
shl eax, 4
xor eax, dword [rcx + 0x5c]
and eax, 0x10
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x194]
shr eax, 3
xor eax, dword [rcx + 0x5c]
and eax, 0x20
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x194]
shr eax, 8
xor eax, dword [rcx + 0x5c]
and eax, 0x40
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x194]
shr eax, 0xc
xor eax, dword [rcx + 0x5c]
and eax, 0x80
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shl eax, 2
xor eax, dword [rcx + 0x5c]
and eax, 0x100
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x180]
shr eax, 9
xor eax, dword [rcx + 0x34]
and eax, 0x20
xor dword [rcx + 0x34], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x6c]
shr eax, 4
xor eax, dword [rcx + 0x2c]
and eax, 0x100000
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shl eax, 4
xor eax, dword [rcx + 0x5c]
and eax, 0x800
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
xor eax, dword [rcx + 0x5c]
and eax, 0x1000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
xor eax, dword [rcx + 0x5c]
and eax, 0x2000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
xor eax, dword [rcx + 0x5c]
and eax, 0x4000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
shr eax, 3
xor eax, dword [rcx + 0x5c]
and eax, 0x20000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
shr eax, 5
xor eax, dword [rcx + 0x5c]
and eax, 0x40000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
shr eax, 6
xor eax, dword [rcx + 0x5c]
and eax, 0x80000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1a0]
xor eax, dword [rcx + 0x5c]
and eax, 0x100000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1a0]
shr eax, 2
xor eax, dword [rcx + 0x5c]
and eax, 0x200000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
shr eax, 9
xor eax, dword [rcx + 0x5c]
and eax, 0x400000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1a0]
shr eax, 2
xor eax, dword [rcx + 0x5c]
and eax, 0x800000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x160]
shl eax, 0xf
xor eax, dword [rcx + 0x5c]
and eax, 0x1000000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x19c]
shr eax, 6
xor eax, dword [rcx + 0x5c]
and eax, 0x2000000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0xd4]
shl eax, 0xa
xor eax, dword [rcx + 0x5c]
and eax, 0x4000000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1a0]
shr eax, 4
xor eax, dword [rcx + 0x5c]
and eax, 0x8000000
xor dword [rcx + 0x5c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1a8]
shr eax, 0x15
xor eax, dword [rcx + 0x2c]
and eax, 8
xor dword [rcx + 0x2c], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x1dc]
shr eax, 0xc
xor eax, dword [rcx + 0x30]
and eax, 0x8000
xor dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x80]
shr eax, 0x12
xor eax, dword [rcx + 0x30]
and eax, 0x80
xor dword [rcx + 0x30], eax
lea r12, [0x140000000]
cmp qword [rdi + 0x10], rbp
je 0x14012db80
mov dword [rsp + 0x98], ebp
mov rcx, qword [0x14021cc50]
test ecx, ecx
jle 0x14012db80
lea rdx, [rsp + 0x40]
mov rax, qword [r12 + 0x1ac380]
mov qword [rdx], rax
mov rax, qword [r12 + 0x1ac388]
mov qword [rdx + 8], rax
test rcx, rcx
jle 0x14012db7a
lea rbx, [rdi + 0x18]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea r8d, [r9 + 0x15]
lea rdx, [rsp + 0x40]
mov rcx, qword [0x14021cc48]
mov rcx, qword [rcx]
call fcn.14008b3c0
test eax, eax
jne 0x14012db86
jmp 0x14012db80
call fcn.14013d908
int3
lea rbx, [rdi + 0x18]
mov dword [rbx], ebp
movzx r11d, word [rsi + 0x44a]
movzx r10d, word [rsi + 0x448]
mov eax, r11d
shl eax, 0x10
or r10d, eax
movzx r9d, word [rsi + 0x44e]
shl r9d, 0x10
movzx eax, word [rsi + 0x44c]
or r9d, eax
mov r8d, ebp
lea rcx, [0x1401a7a78]
nop
mov edx, dword [rcx - 8]
test edx, edx
je 0x14012dbfe
sub edx, 1
je 0x14012dbf7
sub edx, 1
je 0x14012dbef
sub edx, 1
je 0x14012dbe2
cmp edx, 1
jne 0x14012dc05
cmp r11d, dword [rcx]
je 0x14012dc19
jmp 0x14012dc05
cmp r10d, dword [rcx]
jne 0x14012dc05
cmp r9d, dword [rcx + 4]
je 0x14012dc19
jmp 0x14012dc05
cmp r9d, dword [rcx + 4]
je 0x14012dc19
jmp 0x14012dc05
cmp r10d, dword [rcx]
je 0x14012dc19
jmp 0x14012dc05
mov eax, dword [rbx]
cmp dword [rcx - 4], eax
je 0x14012dc19
add r8d, 1
add rcx, 0x14
cmp r8d, 0x5d
jae 0x14012dd3b
jmp 0x14012dbc0
movsxd rax, r8d
lea rcx, [rax + rax*4]
mov edx, dword [r12 + rcx*4 + 0x1a7a80]
test edx, edx
je 0x14012dd0e
sub edx, 1
je 0x14012dcdf
sub edx, 1
je 0x14012dcb0
sub edx, 1
je 0x14012dc7e
cmp edx, 1
jne 0x14012dd3b
mov ecx, 0x228
call fcn.14013d028
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14012dc75
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.1401377d0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x14012dd3b
mov ecx, 0x88
call fcn.14013d028
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14012dca7
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140137050
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x14012dd3b
mov ecx, 0x220
call fcn.14013d028
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14012dcd9
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140135d40
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x14012dd3b
mov ecx, 0xe8
call fcn.14013d028
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14012dd08
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14013a400
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x14012dd3b
mov ecx, 0x1d0
call fcn.14013d028
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14012dd37
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140129810
mov rbp, rax
mov qword [rdi + 8], rbp
mov rax, qword [rdi + 0x10]
bt dword [rax + 0xd0], 0x1a
jae 0x14012dd5b
and dword [rax + 0x2c], 0xfffff7ff
mov rax, qword [rdi + 0x10]
or dword [rax + 0x2c], 0x200000
mov rax, qword [rdi + 0x10]
bt dword [rax + 0x34], 0x13
jae 0x14012dd95
or dword [rax + 0x30], 0x80000
mov rcx, qword [rdi + 0x10]
bt dword [rcx + 0x30], 0x14
jae 0x14012dd7f
or dword [rcx + 0x30], 0x800000
mov rcx, qword [rdi + 0x10]
and dword [rcx + 0x30], 0xffdfffff
mov rcx, qword [rdi + 0x10]
or dword [rcx + 0x30], 0x1000000
mov eax, 1
add rsp, 0x60
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret