Function at 0x42b320
Capabilities:
Check os version

Disassembly:
push rbp
push rbx
sub rsp, 0x228
mov rbp, rsp
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], 0
nop
cmp byte [0x00b20fe1], 0
je 0x42b350
cmp qword [0x00bbde20], 0
jne 0x42b897
mov byte [0x00b20fe1], 1
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x42b3c7
lea rcx, [rbp + 0x70]
mov edx, 0x11c
call fcn.00421ad0
mov dword [rbp + 0x70], 0x11c
lea rcx, [0x0042b8f4]
call sub.kernel32.dll_GetModuleHandleW
mov rcx, rax
lea rdx, [0x0042b908]
call fcn.0041f960
test rax, rax
je 0x42b3a8
lea rcx, [rbp + 0x70]
call rax
test eax, eax
je 0x42b42c
lea rcx, [rbp + 0x70]
call sub.kernel32.dll_GetVersionExW
test eax, eax
jne 0x42b42c
mov dword [rbp + 0x70], 0x114
lea rcx, [rbp + 0x70]
call sub.kernel32.dll_GetVersionExW
jmp 0x42b42c
lea rcx, [rbp + 0x18c]
mov edx, 0x94
call fcn.00421ad0
mov dword [rbp + 0x18c], 0x94
lea rcx, [rbp + 0x18c]
call sub.kernel32.dll_GetVersionExA
lea rcx, [rbp + 0x18c]
lea rdx, [rbp + 0x70]
mov r8d, 0x94
call fcn.00408cc0
xor rax, rax
movsxd rcx, eax
movsxd rdx, eax
movzx dx, byte [rdx + rbp + 0x1a0]
mov word [rbp + rcx*2 + 0x84], dx
add eax, 1
cmp eax, 0x80
jne 0x42b409
nop
mov eax, dword [rbp + 0x74]
mov dword [0x00bbddf8], eax
mov eax, dword [rbp + 0x78]
mov dword [0x00bbddfc], eax
lea rcx, [0x00bbde08]
lea rdx, [rbp + 0x84]
mov r8d, 0x80
call fcn.00411f10
cmp dword [rbp + 0x80], 1
sete al
mov byte [0x00bbde10], al
cmp dword [rbp + 0x80], 2
sete al
mov byte [0x00bbde12], al
cmp byte [0x00bbde10], 0
je 0x42b48d
movzx eax, word [rbp + 0x7c]
mov dword [0x00bbde00], eax
jmp 0x42b496
mov eax, dword [rbp + 0x7c]
mov dword [0x00bbde00], eax
mov byte [0x00bbde14], 0
mov dword [0x00bbde18], 0
cmp byte [0x00bbde10], 0
je 0x42b56a
mov eax, dword [0x00bbddf8]
cmp eax, 4
jb 0x42b550
sub eax, 4
test eax, eax
jne 0x42b549
mov eax, dword [0x00bbddfc]
cmp eax, 0xa
jb 0x42b4e6
sub eax, 0xa
test eax, eax
je 0x42b504
sub eax, 1
cmp eax, 0x50
jae 0x42b540
jmp 0x42b537
cmp dword [0x00bbde00], 0x3e8
jbe 0x42b4fb
mov byte [0x00bbde14], 2
jmp 0x42b550
mov byte [0x00bbde14], 1
jmp 0x42b550
cmp dword [0x00bbde00], 0xa8c
jbe 0x42b519
mov byte [0x00bbde14], 5
jmp 0x42b550
cmp dword [0x00bbde00], 0x7d0
jbe 0x42b52e
mov byte [0x00bbde14], 4
jmp 0x42b550
mov byte [0x00bbde14], 3
jmp 0x42b550
mov byte [0x00bbde14], 5
jmp 0x42b550
mov byte [0x00bbde14], 6
jmp 0x42b550
mov byte [0x00bbde14], 6
movzx rax, byte [0x00bbde14]
mov byte [0x00bbde11], al
mov byte [0x00bbde13], 0
jmp 0x42b778
cmp byte [0x00bbde12], 0
je 0x42b778
mov eax, dword [0x00bbddf8]
cmp eax, 5
jg 0x42b599
cmp eax, 5
je 0x42b5c8
cmp eax, 4
jb 0x42b5b0
sub eax, 4
test eax, eax
jne 0x42b6b5
jmp 0x42b5bc
sub eax, 6
test eax, eax
je 0x42b615
sub eax, 4
test eax, eax
jne 0x42b6b5
jmp 0x42b6ac
mov byte [0x00bbde14], 7
jmp 0x42b6bc
mov byte [0x00bbde14], 8
jmp 0x42b6bc
mov eax, dword [0x00bbddfc]
sub eax, 1
cmp eax, 0xffffffff
je 0x42b5dc
test eax, eax
jne 0x42b5f4
jmp 0x42b5e8
mov byte [0x00bbde14], 9
jmp 0x42b6bc
mov byte [0x00bbde14], 0xa
jmp 0x42b6bc
cmp byte [rbp + 0x18a], 1
jne 0x42b609
mov byte [0x00bbde14], 0xa
jmp 0x42b6bc
mov byte [0x00bbde14], 0xb
jmp 0x42b6bc
mov eax, dword [0x00bbddfc]
sub eax, 1
cmp eax, 0xffffffff
je 0x42b637
test eax, eax
je 0x42b652
sub eax, 1
test eax, eax
je 0x42b66d
sub eax, 1
test eax, eax
jne 0x42b6a3
jmp 0x42b688
cmp byte [rbp + 0x18a], 1
jne 0x42b649
mov byte [0x00bbde14], 0xc
jmp 0x42b6bc
mov byte [0x00bbde14], 0xd
jmp 0x42b6bc
cmp byte [rbp + 0x18a], 1
jne 0x42b664
mov byte [0x00bbde14], 0xe
jmp 0x42b6bc
mov byte [0x00bbde14], 0xf
jmp 0x42b6bc
cmp byte [rbp + 0x18a], 1
jne 0x42b67f
mov byte [0x00bbde14], 0x10
jmp 0x42b6bc
mov byte [0x00bbde14], 0x11
jmp 0x42b6bc
cmp byte [rbp + 0x18a], 1
jne 0x42b69a
mov byte [0x00bbde14], 0x12
jmp 0x42b6bc
mov byte [0x00bbde14], 0x13
jmp 0x42b6bc
mov byte [0x00bbde14], 0x15
jmp 0x42b6bc
mov byte [0x00bbde14], 0x14
jmp 0x42b6bc
mov byte [0x00bbde14], 0x15
mov byte [0x00bbde11], 0
movzx rax, byte [0x00bbde14]
mov byte [0x00bbde13], al
cmp dword [rbp + 0x70], 0x11c
jb 0x42b6e9
movzx eax, word [rbp + 0x184]
mov dword [0x00bbde18], eax
jmp 0x42b732
mov rcx, qword [0x00bbde08]
call fcn.004108a0
cmp eax, 0xe
jl 0x42b732
lea rcx, [0x00bbde08]
call fcn.004109c0
mov rbx, rax
mov rcx, qword [0x00bbde08]
call fcn.004108a0
xor rcx, rcx
lea rdx, [rbx + 0x1a]
mov r8d, eax
sub r8d, 0xd
mov rax, qword [0x00bb8280]
call qword [rax]
mov dword [0x00bbde18], eax
lea rcx, [0x0042b924]
call sub.kernel32.dll_GetModuleHandleW
mov rcx, rax
lea rdx, [0x0042b93e]
call fcn.0041f960
mov rbx, rax
test rbx, rbx
je 0x42b778
lea rcx, [rbp + 0x40]
mov edx, 0x30
call fcn.00421ad0
lea rcx, [rbp + 0x40]
call rbx
cmp word [rbp + 0x40], 9
sete al
mov byte [0x00bbde15], al
lea rcx, [rbp + 0x38]
lea rax, [0x00b20ee0]
movzx rdx, byte [0x00bbde14]
mov rdx, qword [rax + rdx*8]
xor r8, r8
call fcn.00410cf0
lea rcx, [0x00bbde20]
mov rdx, qword [rbp + 0x38]
call fcn.00411f60
cmp byte [0x00bbde12], 0
je 0x42b897
mov ecx, 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x42b7d6
lea rcx, [0x00bbde20]
lea rdx, [0x0042b974]
call fcn.00412180
mov ecx, 0x56
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x42b7f8
lea rcx, [0x00bbde20]
lea rdx, [0x0042b988]
call fcn.00412180
mov ecx, 0x58
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x42b81a
lea rcx, [0x00bbde20]
lea rdx, [0x0042b9ac]
call fcn.00412180
cmp byte [0x00bbde14], 0xc
jae 0x42b845
mov ecx, 0x57
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x42b845
lea rcx, [0x00bbde20]
lea rdx, [0x0042b9cc]
call fcn.00412180
cmp byte [0x00bbde15], 0
je 0x42b861
lea rcx, [0x00bbde20]
lea rdx, [0x0042b9f4]
call fcn.00412180
cmp qword [0x00bbde08], 0
je 0x42b897
lea rcx, [0x00bbde20]
mov edx, 3
mov r8, qword [0x00bbde20]
lea r9, [0x0042ba0c]
mov rax, qword [0x00bbde08]
mov qword [rsp + 0x20], rax
call fcn.00412390
mov rcx, qword [rbp + 0x30]
lea rdx, [0x00bbddf8]
mov r8, qword [0x0042af00]
call fcn.004131f0
nop
lea rcx, [rbp + 0x38]
call fcn.004100d0
mov rax, qword [rbp + 0x30]
lea rsp, [rbp + 0x228]
pop rbx
pop rbp
ret