Function at 0x140113c40
Capabilities:
Check os version
Inspect section memory permissions
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
test rdx, rdx
jne 0x140113c66
xor eax, eax
jmp 0x140114a0d
mov qword [rcx + 0x10], rdx
lea rcx, [rdx + 0x2c]
xor edx, edx
lea r8d, [rdx + 0x40]
call fcn.1401489d0
xor ebp, ebp
mov dword [rsp + 0x88], ebp
mov qword [rsp + 0x30], rbp
lea rax, [rsp + 0x30]
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 0x140113d24
mov rbx, qword [rsp + 0x30]
mov dword [rsp + 0x90], 4
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x98]
xor r8d, r8d
lea rdx, str.HideAudioIcon
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140113d16
cmp dword [rsp + 0x98], 4
jne 0x140113d16
cmp dword [rsp + 0x88], 1
jne 0x140113d16
or dword [rsi + 0x70], 0x400
test rbx, rbx
je 0x140113d24
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsi + 0x70]
bt eax, 0xa
jb 0x140113d41
bt eax, 0xe
jb 0x140113d41
bt dword [rsi + 0x15c], 0x11
jb 0x140113d41
mov edx, ebp
jmp 0x140113d46
mov edx, 1
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x2c]
xor eax, edx
and eax, 1
xor dword [rcx + 0x2c], eax
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 0x140113dcb
test byte [rsi + 0x10c], 0x20
jne 0x140113dcb
mov ecx, ebp
jmp 0x140113dd0
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 0x140113dfa
bt dword [rsi + 0x15c], 0x12
jb 0x140113dfa
mov ecx, ebp
jmp 0x140113dff
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 0x140113f53
mov eax, dword [rsi + 0x12c]
test al, 8
jne 0x140113f4c
bt eax, 8
jae 0x140113f53
mov ecx, 1
jmp 0x140113f55
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 0x140113f82
bt dword [rsi + 0xdc], 0x19
jae 0x140113f82
mov ecx, 1
jmp 0x140113f84
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 0x140114020
test byte [rsi + 0x187], 1
jne 0x140114020
mov eax, ebp
jmp 0x140114025
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 0x1401140a3
test byte [rsi + 0x15c], 0x40
jne 0x1401140a3
mov edx, ebp
jmp 0x1401140a8
mov edx, 1
mov rcx, qword [rdi + 0x10]
mov eax, dword [rcx + 0x4c]
xor eax, edx
and eax, 1
xor dword [rcx + 0x4c], eax
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 0x140114264
bt dword [rsi + 0x1a8], 0xe
jb 0x140114264
mov ecx, ebp
jmp 0x140114269
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 0x1401142bc
bt dword [rsi + 0x15c], 0x11
jb 0x1401142bc
mov ecx, ebp
jmp 0x1401142c1
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 0x14011432f
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 0x140114341
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 0x1401144dd
mov eax, dword [0x140206d04]
test eax, eax
jne 0x1401144c8
mov dword [0x140206d00], 0x114
lea rcx, [0x140206d00]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x140206d04]
cmp eax, 6
jne 0x1401144dd
cmp dword [0x140206d08], 2
jne 0x1401144dd
mov eax, 1
jmp 0x1401144df
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
lea r12, [0x140000000]
cmp qword [rdi + 0x10], rbp
je 0x1401147f4
lea rcx, [rsp + 0x30]
mov rax, qword [r12 + 0x18e388]
mov qword [rcx], rax
mov rax, qword [r12 + 0x18e390]
mov qword [rcx + 8], rax
cmp qword [0x140206e20], rbp
je 0x1401147f4
lea rbx, [rdi + 0x18]
mov dword [rsp + 0x20], 4
mov r9, rbx
xor r8d, r8d
lea edx, [r8 + 0x15]
lea rcx, [rsp + 0x30]
call fcn.140086360
test eax, eax
jne 0x1401147fa
lea rbx, [rdi + 0x18]
mov dword [rbx], ebp
movzx r11d, word [rsi + 0x432]
movzx r10d, word [rsi + 0x430]
mov eax, r11d
shl eax, 0x10
or r10d, eax
movzx r9d, word [rsi + 0x436]
shl r9d, 0x10
movzx eax, word [rsi + 0x434]
or r9d, eax
mov r8d, ebp
lea rcx, [0x140189d08]
mov edx, dword [rcx - 8]
test edx, edx
je 0x140114871
sub edx, 1
je 0x14011486a
sub edx, 1
je 0x140114862
sub edx, 1
je 0x140114855
cmp edx, 1
jne 0x140114878
cmp r11d, dword [rcx]
je 0x14011488c
jmp 0x140114878
cmp r10d, dword [rcx]
jne 0x140114878
cmp r9d, dword [rcx + 4]
je 0x14011488c
jmp 0x140114878
cmp r9d, dword [rcx + 4]
je 0x14011488c
jmp 0x140114878
cmp r10d, dword [rcx]
je 0x14011488c
jmp 0x140114878
mov eax, dword [rbx]
cmp dword [rcx - 4], eax
je 0x14011488c
add r8d, 1
add rcx, 0x14
cmp r8d, 0x5d
jae 0x1401149ae
jmp 0x140114833
movsxd rax, r8d
lea rcx, [rax + rax*4]
mov edx, dword [r12 + rcx*4 + 0x189d10]
test edx, edx
je 0x140114981
sub edx, 1
je 0x140114952
sub edx, 1
je 0x140114923
sub edx, 1
je 0x1401148f1
cmp edx, 1
jne 0x1401149ae
mov ecx, 0x228
call fcn.1401281a0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x1401148e8
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011e330
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x1401149ae
mov ecx, 0x88
call fcn.1401281a0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x14011491a
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011dcd0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x1401149ae
mov ecx, 0x220
call fcn.1401281a0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x14011494c
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011c9c0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x1401149ae
mov ecx, 0xe8
call fcn.1401281a0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x14011497b
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140120de0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x1401149ae
mov ecx, 0x1d0
call fcn.1401281a0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x1401149aa
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140110550
mov rbp, rax
mov qword [rdi + 8], rbp
mov rax, qword [rdi + 0x10]
bt dword [rax + 0xd0], 0x1a
jae 0x1401149ce
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 0x140114a08
or dword [rax + 0x30], 0x80000
mov rcx, qword [rdi + 0x10]
bt dword [rcx + 0x30], 0x14
jae 0x1401149f2
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, 0x50
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret