Function at 0x180041b88
Capabilities:
Check os version

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x188
mov qword [rsp + 0xf0], 0xfffffffffffffffe
mov rbp, rcx
xor esi, esi
cmp qword [rcx + 0xf0], rsi
jne 0x18004260f
call fcn.18003a0a4
mov edi, 0x10000
mov r14d, esi
mov dword [rsp + 0x1d0], 0x65e53185
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0x1d0]
lea rdx, [rsp + 0x120]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180041c09
cmp qword [rax], r13
je 0x180041c0e
call fcn.180065948
mov r13d, 8
cmp qword [rbx + 8], r15
je 0x180041db5
mov ebx, 0x65e53185
mov dword [rsp + 0x1d8], ebx
lea rdx, [rsp + 0x1d8]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
cmp word [rax], r13w
jne 0x180041ce4
mov dword [rsp + 0x1e0], ebx
lea rdx, [rsp + 0x1e0]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.180016ad0
nop
mov rbx, qword [rsp + 0xd8]
cmp rbx, rsi
je 0x180041c99
cmp qword [rbx + 8], rsi
jne 0x180041c93
mov rcx, qword [rbx]
call fcn.18007d5b0
mov qword [rbx + 8], rax
mov rcx, qword [rbx + 8]
jmp 0x180041c9c
mov rcx, rsi
call fcn.18005c7c8
mov r13d, eax
cmp rbx, rsi
je 0x180041d0a
or eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
jne 0x180041d0a
mov rbx, qword [rsp + 0xd8]
cmp qword [rbx], rsi
je 0x180041ccc
mov rcx, qword [rbx]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
cmp rcx, rsi
je 0x180041cda
call fcn.180064200
mov rcx, rbx
call fcn.18006419c
jmp 0x180041d0a
mov dword [rsp + 0x1e8], ebx
lea rdx, [rsp + 0x1e8]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
mov r13d, eax
cmp r13d, 4
jg 0x180041d4f
cmp r13d, 4
je 0x180041d79
cmp r13d, 0xdf2098a8
je 0x180041d48
cmp r13d, 0xfc5181db
je 0x180041d41
cmp r13d, esi
je 0x180041d86
cmp r13d, 1
je 0x180041d48
cmp r13d, 2
je 0x180041d41
cmp r13d, 3
je 0x180041d8d
jmp 0x180041db5
mov edi, 0xc40000
jmp 0x180041db5
mov edi, 0xc00000
jmp 0x180041db5
cmp r13d, 5
je 0x180041daa
cmp r13d, 0xef99f83
je 0x180041daa
cmp r13d, 0x38279a88
je 0x180041d8d
cmp r13d, 0x54487678
je 0x180041d86
cmp r13d, 0x72f8f728
jne 0x180041db5
mov edi, 0xc00000
mov r14d, 0x80
jmp 0x180041db5
mov edi, 0x80000000
jmp 0x180041db5
mov edi, 0x80c00000
mov r14d, 0x101
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 4
jbe 0x180041db5
mov edi, 0x80c00080
jmp 0x180041db5
mov edi, 0xc40000
mov r14d, 0x80
mov dword [rsp + 0xa4], 0x48ce4e81
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0xa4]
lea rdx, [rsp + 0x100]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180041df7
cmp qword [rax], r13
je 0x180041dfc
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x180041e6f
mov dword [rsp + 0x74], 0x48ce4e81
lea rdx, [rsp + 0x74]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
test al, 1
je 0x180041e32
bts edi, 0x10
mov byte [rbp + 0x129], 1
test al, 2
je 0x180041e41
bts edi, 0x11
mov byte [rbp + 0x129], 1
test al, 4
je 0x180041e50
bts edi, 0x12
mov byte [rbp + 0x129], 1
test al, 8
je 0x180041e5f
bts edi, 0x13
mov byte [rbp + 0x129], 1
test al, 0x10
je 0x180041e6f
bts r14d, 0xa
mov byte [rbp + 0x129], 1
mov dword [rsp + 0x7c], 0xb2e6882c
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0x7c]
lea rdx, [rsp + 0x160]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180041eab
cmp qword [rax], r13
je 0x180041eb0
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x180041eeb
mov dword [rsp + 0x8c], 0xb2e6882c
lea rdx, [rsp + 0x8c]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x180041eeb
bts edi, 0x1f
bts r14d, 7
mov dword [rsp + 0x78], 0x50dccb46
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x140]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180041f27
cmp qword [rax], r13
je 0x180041f2c
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x180041f64
mov dword [rsp + 0xb0], 0x50dccb46
lea rdx, [rsp + 0xb0]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x180041f64
or edi, 0xc00000
mov dword [rsp + 0x80], 0x285636f7
lea rdx, [rsp + 0x80]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x180041f95
bts r14d, 0x1b
mov eax, 0xcf0000
cmp edi, 0x2000000
cmove edi, eax
mov dword [rsp + 0xb8], 0xedfe5e4
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0xb8]
lea rdx, [rsp + 0x110]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180041fe5
cmp qword [rax], r13
je 0x180041fea
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x180042021
mov dword [rsp + 0x88], 0xedfe5e4
lea rdx, [rsp + 0x88]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x180042021
bts r14d, 7
mov dword [rsp + 0xc0], 0x7d6c9c18
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0xc0]
lea rdx, [rsp + 0x130]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x180042063
cmp qword [rax], r13
je 0x180042068
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x18004209e
mov dword [rsp + 0x90], 0x7d6c9c18
lea rdx, [rsp + 0x90]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x18004209e
or r14d, 8
mov byte [rbp + 0x128], sil
mov dword [rsp + 0xc8], 0x67200232
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0xc8]
lea rdx, [rsp + 0x150]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rbx, rax
cmp qword [rax], rsi
je 0x1800420e7
cmp qword [rax], r13
je 0x1800420ec
call fcn.180065948
cmp qword [rbx + 8], r15
je 0x18004212a
mov dword [rsp + 0xa0], 0x67200232
lea rdx, [rsp + 0xa0]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, sil
je 0x18004212a
mov byte [rbp + 0x128], 1
bts r14d, 0x13
mov dword [rsp + 0xd0], 0xb7a9dc18
lea rdx, [rsp + 0xd0]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.180016ad0
nop
mov dword [rsp + 0xbc], 0xf2463807
lea rdx, [rsp + 0xbc]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
add eax, dword [rbp + 0x170]
mov dword [rsp + 0x60], eax
mov dword [rsp + 0xac], 0x29ac2a15
lea rdx, [rsp + 0xac]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
add eax, dword [rbp + 0x174]
mov dword [rsp + 0x64], eax
mov dword [rsp + 0xcc], 0x7b960306
lea rdx, [rsp + 0xcc]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xb4], 0xf2e0da47
lea rdx, [rsp + 0xb4]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.18000d72c
mov dword [rsp + 0x70], eax
mov r13, qword [rbp + 0x100]
mov dword [rsp + 0xc4], 0x267fa9f1
lea rdx, [rsp + 0xc4]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rcx, rax
call fcn.180028314
cmp al, 1
jne 0x1800422c9
mov rcx, qword [rbp + 0x278]
cmp rcx, rsi
je 0x180042265
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp + 0x278], rsi
mov ecx, 0x58
call fcn.180064d40
mov qword [rsp + 0xf8], rax
cmp rax, rsi
je 0x180042286
mov rcx, rax
call fcn.1800527f8
jmp 0x180042289
mov rax, rsi
mov qword [rbp + 0x278], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
call fcn.1800525b4
lea r8, [rbp + 0xb0]
mov rdx, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x278]
call fcn.180052730
mov r13, rax
cmp rax, rsi
jne 0x1800422c9
mov r13, qword [rbp + 0x100]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r15, rax
mov rbx, qword [rsp + 0x68]
cmp rbx, rsi
je 0x1800422f6
cmp qword [rbx + 8], rsi
jne 0x1800422f0
mov rcx, qword [rbx]
call fcn.18007d5b0
mov qword [rbx + 8], rax
mov r8, qword [rbx + 8]
jmp 0x1800422f9
mov r8, rsi
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
mov r9d, edi
mov rdx, qword [str.dtxTb]
mov ecx, r14d
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov qword [rbp + 0xf0], rax
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov byte [rbp + 0x208], sil
cmp qword [rbp + 0xf0], rsi
je 0x18004239a
mov r8, rbp
lea rdx, [0x180040fa4]
lea rcx, [rbp + 0x1f8]
call fcn.180034bd4
mov r8, qword [rbp + 0x1f8]
mov edx, 0xfffffffc
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_SetWindowLongPtrA]
mov qword [rbp + 0x210], rax
mov rdx, qword [rbp + 0x108]
cmp rdx, rsi
je 0x1800423b3
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_SetParent]
mov rcx, rbp
call fcn.18003d700
mov rcx, qword [rbp + 0x138]
cmp rcx, rsi
je 0x18004240e
mov rcx, qword [rcx + 0xb8]
mov qword [rsp + 0xe8], rcx
cmp rcx, rsi
je 0x1800423e1
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0xe8]
mov rcx, rbp
call fcn.18003a810
mov qword [rbp + 0x110], rax
cmp rax, rsi
je 0x180042415
mov rcx, rax
call fcn.18005add4
mov qword [rbp + 0x110], rax
jmp 0x180042415
mov qword [rbp + 0x110], rsi
mov dword [rsp + 0x60], 0xb4e13b38
mov r15, qword [rbp + 0xe0]
mov r13, qword [rbp + 0xb0]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x170]
lea rcx, [rbp + 0xb0]
call fcn.1800368b4
mov rdi, rax
cmp qword [rax], rsi
je 0x180042451
cmp qword [rax], r13
je 0x180042456
call fcn.180065948
cmp qword [rdi + 8], r15
je 0x180042512
mov dword [rsp + 0x84], 0xb4e13b38
lea rdx, [rsp + 0x84]
lea rcx, [rbp + 0xb0]
call fcn.180025c10
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.180016ad0
nop
mov rdi, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rdi
cmp rdi, rsi
je 0x1800424b7
lock add dword [rdi + 0x10], 1
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x98]
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.18003aec4
nop
cmp rdi, rsi
je 0x180042512
or eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x18004250d
mov rbx, qword [rsp + 0x98]
cmp qword [rbx], rsi
je 0x1800424f0
mov rcx, qword [rbx]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
cmp rcx, rsi
je 0x1800424fe
call fcn.180064200
mov rcx, rbx
call fcn.18006419c
mov rbx, qword [rsp + 0x68]
jmp 0x180042512
mov rbx, qword [rsp + 0x68]
test r14b, 1
je 0x1800425d4
xor edx, edx
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_SetMenu]
xor edx, edx
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_GetSystemMenu]
mov rdi, rax
xor r8d, r8d
mov edx, 0xf130
mov rcx, rax
call qword [sym.imp.USER32.dll_DeleteMenu]
mov r12d, 0x400
mov r8d, r12d
mov edx, 7
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
mov r8d, r12d
mov edx, 5
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
xor r8d, r8d
mov edx, 0xf030
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
xor r8d, r8d
mov edx, 0xf020
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
xor r8d, r8d
mov edx, 0xf000
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
xor r8d, r8d
mov edx, 0xf120
mov rcx, rdi
call qword [sym.imp.USER32.dll_DeleteMenu]
xor r9d, r9d
mov edx, 0x80
lea r8d, [r9 + 1]
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_SendMessageA]
nop
cmp rbx, rsi
je 0x18004260f
or eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
jne 0x18004260f
mov rbx, qword [rsp + 0x68]
cmp qword [rbx], rsi
je 0x1800425f9
mov rcx, qword [rbx]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
cmp rcx, rsi
je 0x180042607
call fcn.180064200
mov rcx, rbx
call fcn.18006419c
test byte [rbp + 0x12c], 3
je 0x180042657
cmp qword [0x1800bd450], rsi
je 0x180042657
lea rdx, [rbp + 0x24c]
mov rcx, qword [0x1800bd3e8]
call qword [sym.imp.USER32.dll_GetWindowRect]
xor r9d, r9d
mov edx, 0x55995
mov r8d, reloc.OLEAUT32.dll_SetErrorInfo
mov rcx, qword [rbp + 0xf0]
call qword [sym.imp.USER32.dll_SetTimer]
mov qword [rbp + 0x260], rax
cmp qword [rbp + 0xf0], rsi
setne al
add rsp, 0x188
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret