Function at 0x140114240
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 0x140114266
xor eax, eax
jmp 0x14011500d
mov qword [rcx + 0x10], rdx
lea rcx, [rdx + 0x2c]
xor edx, edx
lea r8d, [rdx + 0x40]
call fcn.140148fe0
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 0x140114324
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 0x140114316
cmp dword [rsp + 0x98], 4
jne 0x140114316
cmp dword [rsp + 0x88], 1
jne 0x140114316
or dword [rsi + 0x70], 0x400
test rbx, rbx
je 0x140114324
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsi + 0x70]
bt eax, 0xa
jb 0x140114341
bt eax, 0xe
jb 0x140114341
bt dword [rsi + 0x15c], 0x11
jb 0x140114341
mov edx, ebp
jmp 0x140114346
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 0x1401143cb
test byte [rsi + 0x10c], 0x20
jne 0x1401143cb
mov ecx, ebp
jmp 0x1401143d0
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 0x1401143fa
bt dword [rsi + 0x15c], 0x12
jb 0x1401143fa
mov ecx, ebp
jmp 0x1401143ff
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 0x140114553
mov eax, dword [rsi + 0x12c]
test al, 8
jne 0x14011454c
bt eax, 8
jae 0x140114553
mov ecx, 1
jmp 0x140114555
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 0x140114582
bt dword [rsi + 0xdc], 0x19
jae 0x140114582
mov ecx, 1
jmp 0x140114584
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 0x140114620
test byte [rsi + 0x187], 1
jne 0x140114620
mov eax, ebp
jmp 0x140114625
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 0x1401146a3
test byte [rsi + 0x15c], 0x40
jne 0x1401146a3
mov edx, ebp
jmp 0x1401146a8
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 0x140114864
bt dword [rsi + 0x1a8], 0xe
jb 0x140114864
mov ecx, ebp
jmp 0x140114869
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 0x1401148bc
bt dword [rsi + 0x15c], 0x11
jb 0x1401148bc
mov ecx, ebp
jmp 0x1401148c1
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 0x14011492f
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 0x140114941
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 0x140114add
mov eax, dword [0x140206d04]
test eax, eax
jne 0x140114ac8
mov dword [0x140206d00], 0x114
lea rcx, [0x140206d00]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x140206d04]
cmp eax, 6
jne 0x140114add
cmp dword [0x140206d08], 2
jne 0x140114add
mov eax, 1
jmp 0x140114adf
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 0x140114df4
lea rcx, [rsp + 0x30]
mov rax, qword [r12 + 0x18e398]
mov qword [rcx], rax
mov rax, qword [r12 + 0x18e3a0]
mov qword [rcx + 8], rax
cmp qword [0x140206e20], rbp
je 0x140114df4
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.140086370
test eax, eax
jne 0x140114dfa
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 0x140114e71
sub edx, 1
je 0x140114e6a
sub edx, 1
je 0x140114e62
sub edx, 1
je 0x140114e55
cmp edx, 1
jne 0x140114e78
cmp r11d, dword [rcx]
je 0x140114e8c
jmp 0x140114e78
cmp r10d, dword [rcx]
jne 0x140114e78
cmp r9d, dword [rcx + 4]
je 0x140114e8c
jmp 0x140114e78
cmp r9d, dword [rcx + 4]
je 0x140114e8c
jmp 0x140114e78
cmp r10d, dword [rcx]
je 0x140114e8c
jmp 0x140114e78
mov eax, dword [rbx]
cmp dword [rcx - 4], eax
je 0x140114e8c
add r8d, 1
add rcx, 0x14
cmp r8d, 0x5d
jae 0x140114fae
jmp 0x140114e33
movsxd rax, r8d
lea rcx, [rax + rax*4]
mov edx, dword [r12 + rcx*4 + 0x189d10]
test edx, edx
je 0x140114f81
sub edx, 1
je 0x140114f52
sub edx, 1
je 0x140114f23
sub edx, 1
je 0x140114ef1
cmp edx, 1
jne 0x140114fae
mov ecx, 0x228
call fcn.1401287b0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140114ee8
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011e930
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x140114fae
mov ecx, 0x88
call fcn.1401287b0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140114f1a
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011e2d0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x140114fae
mov ecx, 0x220
call fcn.1401287b0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140114f4c
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.14011cfc0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x140114fae
mov ecx, 0xe8
call fcn.1401287b0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140114f7b
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.1401213f0
mov rbp, rax
mov qword [rdi + 8], rbp
jmp 0x140114fae
mov ecx, 0x1d0
call fcn.1401287b0
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140114faa
mov r8d, dword [rbx]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
call fcn.140110b50
mov rbp, rax
mov qword [rdi + 8], rbp
mov rax, qword [rdi + 0x10]
bt dword [rax + 0xd0], 0x1a
jae 0x140114fce
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 0x140115008
or dword [rax + 0x30], 0x80000
mov rcx, qword [rdi + 0x10]
bt dword [rcx + 0x30], 0x14
jae 0x140114ff2
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