Function at 0x4200b4
Capabilities:
Check os version

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rsi, r9
mov r12, r8
mov r13d, edx
mov rbp, rcx
xor r15d, r15d
mov qword [rsp + 0x20], r15
cmp edx, 0x111
jne 0x420116
mov rax, qword [rcx]
mov r8, r9
mov rdx, r12
call qword [rax + 0xf0]
cmp eax, r15d
je 0x42010f
mov qword [rsp + 0x20], 1
jmp case.0x4202ef.38
xor eax, eax
jmp 0x420908
cmp edx, 0x4e
jne 0x420144
cmp qword [r9], r15
je 0x42013d
mov rax, qword [rcx]
lea r9, [rsp + 0x20]
mov r8, rsi
mov rdx, r12
call qword [rax + 0xf8]
cmp eax, r15d
jne case.0x4202ef.38
xor eax, eax
jmp 0x420908
cmp edx, 6
jne 0x42015f
mov rcx, r9
call fcn.0041d6a8
mov r8, rax
mov rdx, r12
mov rcx, rbp
call fcn.0041f620
cmp r13d, 0x20
jne 0x42018e
mov rax, rsi
shr rax, 0x10
movzx r8d, ax
movsx edx, si
mov rcx, rbp
call fcn.0041f694
cmp eax, r15d
je 0x42018e
mov qword [rsp + 0x20], 1
jmp case.0x4202ef.38
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x50]
mov r14, rax
mov ebx, eax
xor ebx, r13d
and ebx, 0x1ff
mov ecx, 7
call fcn.00425b44
lea rdx, [rbx + rbx*2]
lea r8, [0x00400000]
cmp r13d, dword [r8 + rdx*8 + 0x412a0]
jne 0x420200
cmp r14, qword [r8 + rdx*8 + 0x412b0]
jne 0x420200
mov rdi, qword [r8 + rdx*8 + 0x412a8]
mov ecx, 7
call fcn.00425bcc
cmp rdi, r15
jne 0x4201ed
xor eax, eax
jmp 0x420908
mov ecx, 0xc000
cmp r13d, ecx
jb 0x4202b0
jmp 0x4208c3
mov dword [r8 + rdx*8 + 0x412a0], r13d
mov qword [r8 + rdx*8 + 0x412b0], r14
cmp r14, r15
je 0x4208f4
mov ecx, 0xc000
cmp r13d, ecx
jae 0x420252
mov rdi, qword [r14 + 8]
cmp qword [rdi + 0x10], r15
je 0x420248
cmp dword [rdi], r13d
jne 0x42023e
cmp dword [rdi + 4], r15d
jne 0x42023e
cmp dword [rdi + 8], r15d
jbe 0x42024b
add rdi, 0x20
cmp qword [rdi + 0x10], r15
jne 0x42022d
mov rdi, r15
cmp rdi, r15
jne 0x42029e
jmp 0x420291
mov rdi, qword [r14 + 8]
cmp qword [rdi + 0x10], r15
je 0x420276
cmp dword [rdi], ecx
jne 0x42026c
cmp dword [rdi + 4], r15d
jne 0x42026c
cmp dword [rdi + 8], r15d
jbe 0x420279
add rdi, 0x20
cmp qword [rdi + 0x10], r15
jne 0x42025c
mov rdi, r15
cmp rdi, r15
je 0x420291
mov rax, qword [rdi + 0x10]
cmp dword [rax], r13d
je 0x4208b1
add rdi, 0x20
jmp 0x420256
mov r14, qword [r14]
cmp r14, r15
jne 0x42021e
jmp 0x4208f4
mov qword [r8 + rdx*8 + 0x412a8], rdi
mov ecx, 7
call fcn.00425bcc
mov rbx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
cmp dword [rdi + 8], 0x1a
jne 0x4202d1
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 4
sbb rax, rax
and rax, 0xfffffffffffffff0
add rax, 0x2f
dec rax
cmp rax, 0x33
ja case.0x4202ef.38
lea rcx, [0x00400000]
mov eax, dword [rcx + rax*4 + 0x2091c]
add rax, rcx
jmp rax
mov rcx, r12
call fcn.00422e08
mov rdx, rax
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov edx, r12d
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx edi, ax
movsx esi, si
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r9d, edi
mov r8d, esi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r8, rsi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rdx, rsi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
lea rcx, [rsp + 0x30]
call fcn.00423118
nop
mov rax, qword [rsi + 8]
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x60]
call fcn.0041d594
nop
mov rcx, qword [rsi]
mov qword [rsp + 0x98], rcx
mov edi, dword [rsi + 0x10]
call fcn.0041e454
cmp rax, r15
jne 0x4203f5
mov rcx, qword [rbp + 0x68]
cmp rcx, r15
je 0x4203f0
add rcx, 0x40
mov rdx, qword [rsp + 0x98]
call fcn.0041bd2c
mov rcx, qword [rsp + 0xd0]
cmp rax, r15
cmovne rcx, rax
mov qword [rsp + 0xd0], rcx
lea rax, [rsp + 0x60]
mov r9d, edi
mov r8, rax
lea rdx, [rsp + 0x30]
mov rcx, rbp
call rbx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x98], r15
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x60]
call fcn.0041ecec
nop
lea rcx, [rsp + 0x30]
call fcn.004231d0
jmp case.0x4202ef.38
lea rcx, [rsp + 0x30]
call fcn.00423118
nop
mov rax, qword [rsi + 8]
mov qword [rsp + 0x38], rax
mov r8d, dword [rsi + 0x10]
lea rdx, [rsp + 0x30]
mov rcx, rbp
call rbx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x30]
call fcn.004231d0
jmp case.0x4202ef.38
mov rax, r12
shr rax, 0x10
movzx edi, ax
mov rcx, rsi
call fcn.0041d6a8
mov r8, rax
movzx edx, r12w
mov r9d, edi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rax, r12
shr rax, 0x10
movzx r8d, ax
movzx edx, r12w
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx edi, ax
movsx esi, si
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r9d, edi
mov r8d, esi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov rdx, rsi
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call rbx
mov qword [rsp + 0x20], rax
jmp case.0x4202ef.38
mov rcx, rsi
call fcn.00421144
mov r9, rax
mov rax, r12
shr rax, 0x10
movzx r8d, ax
movzx edx, r12w
mov rcx, rbp
call rbx
mov qword [rsp + 0x20], rax
jmp case.0x4202ef.38
mov r8, rsi
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rdx, r12
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8d, esi
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movsx r8d, ax
movsx edx, si
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx r9d, ax
movzx r8d, si
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx r9d, ax
movzx r8d, si
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.0041d6a8
mov rdi, rax
mov rcx, rsi
call fcn.0041d6a8
mov r8, rax
mov edx, r15d
cmp qword [rbp + 0x38], rsi
sete dl
mov r9, rdi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.00422e08
mov rdx, rax
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.00421144
mov rdx, rax
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx edi, ax
movzx esi, si
mov rcx, r12
call fcn.00421144
mov rdx, rax
mov r9d, edi
mov r8d, esi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, rsi
call fcn.0041d6a8
mov rdx, rax
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, rsi
shr rax, 0x10
movzx edi, ax
movzx esi, si
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r9d, edi
mov r8d, esi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
movsx eax, si
mov dword [rsp + 0x28], eax
shr esi, 0x10
movsx eax, si
mov dword [rsp + 0x2c], eax
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r8, qword [rsp + 0x28]
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, r12
call fcn.0041d6a8
mov rdx, rax
mov r8, rsi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rcx, rsi
call fcn.0041d6a8
mov r8, rax
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, r12
shr rax, 0x10
movzx edi, ax
mov rcx, rsi
call fcn.0041d6a8
mov r8, rax
movzx edx, r12w
mov r9d, edi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
movsx r13d, r12w
shr r12, 0x10
movsx r12d, r12w
cmp qword [rdi + 0x10], 0x1d
jne 0x420772
mov rcx, rsi
call fcn.0041d6a8
mov r9, rax
mov r8d, r12d
mov edx, r13d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8d, r12d
mov edx, r13d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rdx, rsi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8, rsi
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8, rsi
mov edx, r12d
mov rcx, rbp
call rbx
mov qword [rsp + 0x20], 1
jmp case.0x4202ef.38
mov r8, rsi
mov edx, r12d
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
jmp case.0x4202ef.38
movsx eax, si
mov dword [rsp + 0x28], eax
shr esi, 0x10
movsx eax, si
mov dword [rsp + 0x2c], eax
mov rdx, qword [rsp + 0x28]
mov rcx, rbp
call rbx
mov r11d, eax
mov qword [rsp + 0x20], r11
jmp case.0x4202ef.38
mov rcx, rbp
call rbx
mov r11d, eax
mov qword [rsp + 0x20], r11
jmp case.0x4202ef.38
mov r8, rsi
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rdx, rsi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov rax, r12
shr rax, 0x10
movzx r8d, ax
movzx edx, r12w
mov r9, rsi
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
movsx eax, si
mov dword [rsp + 0x28], eax
shr esi, 0x10
movsx eax, si
mov dword [rsp + 0x2c], eax
mov r8, qword [rsp + 0x28]
mov edx, r12d
mov rcx, rbp
call rbx
jmp case.0x4202ef.38
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call rbx
mov qword [rsp + 0x20], 1
jmp case.0x4202ef.38
movzx eax, si
mov dword [rsp + 0x28], eax
shr rsi, 0x10
movzx eax, si
mov dword [rsp + 0x2c], eax
mov r8, r12
shr r8, 0x10
movzx edx, r12w
mov r9, qword [rsp + 0x28]
mov rcx, rbp
call rbx
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
cmp rcx, r15
jne case.0x4202ef.38
xor eax, eax
jmp 0x420908
mov qword [r8 + rdx*8 + 0x412a8], rdi
mov ecx, 7
call fcn.00425bcc
mov r9, qword [rdi + 0x18]
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call r9
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x150]
cmp rdx, r15
je 0x4208ed
mov rcx, qword [rsp + 0x20]
mov qword [rdx], rcx
mov eax, 1
jmp 0x420908
mov qword [r8 + rdx*8 + 0x412a8], r15
mov ecx, 7
call fcn.00425bcc
xor eax, eax
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret