Function at 0x436d00
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x48ba0d
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x4b2098]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b2098]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x144]
xor esi, esi
push 0x494c78
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], esi
call fcn.00402410
push 0x114
lea eax, [esp + 0x20]
push esi
push eax
mov dword [esp + 0x148], esi
call fcn.00467da0
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ebx, 2
cmp dword [esp + 0x2c], ebx
jne 0x437020
lea edx, [esp + 0x18]
push edx
call fcn.00435ee0
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], 1
call fcn.004022f0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edi, 0xffffffff
mov byte [esp + 0x13c], 0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x436ddb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
push 0x494c78
call fcn.00414aa0
add esp, 8
test al, al
je 0x436e3e
lea ecx, [esp + 0x14]
call fcn.00404c60
mov ecx, eax
call fcn.00404cb0
push eax
lea ecx, [esp + 0x18]
call fcn.004022f0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
push eax
call fcn.00401380
add eax, 0x10
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 4
mov dword [esp + 0x13c], edi
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jmp 0x43710b
lea ecx, [esp + 0x18]
push ecx
call fcn.004361c0
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], bl
call fcn.004022f0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 0
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x436e83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
push 0x494c78
call fcn.00414aa0
add esp, 8
test al, al
jne 0x436df1
lea ecx, [esp + 0x18]
push ecx
call fcn.00436580
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], 3
call fcn.004022f0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 0
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jg 0x436ee1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
push 0x494c78
call fcn.00414aa0
add esp, 8
test al, al
je 0x436f2b
lea ecx, [esp + 0x14]
call fcn.00404c60
mov ecx, eax
call fcn.00404cb0
push eax
lea ecx, [esp + 0x18]
call fcn.004022f0
lea edx, [esp + 0x14]
push edx
mov ecx, ebp
call fcn.00401820
lea ecx, [esp + 0x14]
call fcn.00401310
jmp 0x437117
lea eax, [esp + 0x18]
push eax
call fcn.004367b0
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], 4
call fcn.004022f0
lea ecx, [esp + 0x18]
mov byte [esp + 0x13c], 0
call fcn.00401310
lea ecx, [esp + 0x14]
push ecx
push 0x494c78
call fcn.00414aa0
add esp, 8
test al, al
jne 0x436ef7
mov bl, 5
lea eax, [esp + 0x14]
push eax
push 0x494c78
call fcn.00418c20
add esp, 8
test al, al
je 0x4370da
lea ecx, [esp + 0x18]
push ecx
call fcn.00436a80
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], bl
call fcn.004022f0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x436fd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
call fcn.00404c60
mov ecx, eax
call fcn.00404cb0
push eax
lea ecx, [esp + 0x18]
call fcn.004022f0
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jg 0x437006
inc esi
cmp esi, 0xa
jl 0x436f73
jmp 0x4370de
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.00401820
lea ecx, [esp + 0x14]
call fcn.00401310
jmp 0x437117
mov edi, dword [esp + 0x14]
mov bl, 6
mov ecx, 0x494c78
mov eax, edi
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x437056
test dx, dx
je 0x437052
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x437056
add eax, 4
add ecx, 4
test dx, dx
jne 0x437030
xor eax, eax
jmp 0x43705b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4370de
lea edx, [esp + 0x18]
push edx
call fcn.00436a80
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x140], bl
call fcn.004022f0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4370aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
call fcn.00404c60
mov ecx, eax
call fcn.00404cb0
push eax
lea ecx, [esp + 0x18]
call fcn.004022f0
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jg 0x4370de
inc esi
cmp esi, 0xa
jl 0x437026
jmp 0x4370de
mov edi, dword [esp + 0x14]
lea eax, [edi - 0x10]
push eax
call fcn.00401380
add eax, 0x10
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x140], edx
add esp, 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437117
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebp
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.00467b90
add esp, 0x12c
ret