Function at 0x1020d0e0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0xc8], eax
cmp dword [0x11d0c744], 0
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [esp + 0x18], edx
je 0x1020d137
cmp dword [edx + 4], 0x58544e43
jne 0x1020d137
mov eax, dword fs:[0x2c]
mov ecx, dword [0x11d0c5b8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx]
mov dword [ecx + 0x10], eax
mov dword [edx + 8], 0
mov eax, dword [edx + 0xf7c]
mov edi, dword [eax + 0xb3c]
mov dword [esp + 0x20], edi
mov dword [0x11d0d92c], edi
cmp dword [edi + 0x6f8], ebx
jne 0x1020d15f
mov dword [edi + 0x6f8], 0
cmp dword [edi + 0x700], ebx
jne 0x1020d171
mov dword [edi + 0x700], 0
cmp dword [edi + 0x6f4], ebx
jne 0x1020d183
mov dword [edi + 0x6f4], 0
cmp dword [edi + 0x6f0], ebx
jne 0x1020d195
mov dword [edi + 0x6f0], 0
mov eax, 0x1b4
nop word [eax + eax]
cmp dword [eax + edi], ebx
jne 0x1020d1ac
mov dword [eax + edi], 0
add eax, 4
cmp eax, 0x204
jb 0x1020d1a0
cmp dword [edi + 0x1a4], ebx
jne 0x1020d1c8
mov dword [edi + 0x1a4], 0
cmp dword [edi + 0x148], ebx
jne 0x1020d1e4
mov dword [edi + 0x148], 0
mov dword [edi + 0x178], 0
cmp dword [edi + 0x154], ebx
jne 0x1020d200
mov dword [edi + 0x154], 0
mov dword [edi + 0x184], 0
cmp dword [edi + 0x160], ebx
jne 0x1020d21c
mov dword [edi + 0x160], 0
mov dword [edi + 0x190], 0
cmp dword [edi + 0x16c], ebx
jne 0x1020d238
mov dword [edi + 0x16c], 0
mov dword [edi + 0x19c], 0
test ebx, ebx
je 0x1020d3a6
lea esi, [edi + 0x11c]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x10c]
test ecx, ecx
je 0x1020d395
mov edx, dword [edi + 0x114]
xor eax, eax
test edx, edx
je 0x1020d395
nop dword [eax + eax]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1020d27f
cmp dword [ecx], ebx
je 0x1020d290
inc eax
cmp eax, edx
jae 0x1020d395
mov ecx, dword [edi + 0x10c]
jmp 0x1020d270
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x1020d3a6
mov ecx, dword [esp + 0x18]
mov edx, ebx
push edi
call fcn.1020ce70
cmp esi, ebx
je 0x1020d2c0
push esi
push dword [esp + 0x1c]
call fcn.1019ba60
cmp dword [edi + 0x134], 1
jne 0x1020d388
mov eax, dword [edi + 0x108]
mov dword [esp + 0x10], eax
test eax, eax
je 0x1020d388
cmp eax, ebx
je 0x1020d388
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [edi + 0x11c]
push esi
call eax
mov ecx, dword [edi + 0x10c]
test ecx, ecx
je 0x1020d371
xor eax, eax
cmp dword [edi + 0x114], eax
jbe 0x1020d371
mov edx, dword [esp + 0x10]
nop dword [eax]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1020d31f
cmp dword [ecx], edx
je 0x1020d330
inc eax
cmp eax, dword [edi + 0x114]
jae 0x1020d371
mov ecx, dword [edi + 0x10c]
jmp 0x1020d310
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x108]
mov ecx, dword [esp + 0x18]
push edi
mov esi, dword [eax + 4]
call fcn.1020ce70
test esi, esi
je 0x1020d388
cmp esi, dword [edi + 0x108]
je 0x1020d388
push esi
push dword [esp + 0x1c]
call fcn.1019ba60
mov dword [esp + 0x14], 0
jmp 0x1020d4f5
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [edi + 0x108]
mov ecx, dword [esp + 0x18]
push edi
call fcn.1020ce70
mov dword [esp + 0x14], 0
jmp 0x1020d4f5
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x14], 0
jmp 0x1020d3b0
xor eax, eax
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x1020d3fe
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [edi + 0x2d4]
push esi
call eax
mov ecx, dword [edi + 0x2c4]
test ecx, ecx
je 0x1020d423
mov edx, dword [edi + 0x2cc]
xor eax, eax
test edx, edx
je 0x1020d423
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1020d3e3
cmp dword [ecx], ebx
je 0x1020d3f0
inc eax
cmp eax, edx
jae 0x1020d423
mov ecx, dword [edi + 0x2c4]
jmp 0x1020d3d4
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1020d42a
lea ecx, [edi + 0x2c4]
push ebx
call fcn.10237740
push ebx
lea ecx, [edi + 0x1298]
call fcn.102374e0
jmp 0x1020d4f5
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea esi, [edi + 0x1254]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x1244]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1020d48b
mov edx, dword [edi + 0x124c]
xor eax, eax
test edx, edx
je 0x1020d48b
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x1020d460
cmp dword [ecx], ebx
je 0x1020d46b
inc eax
cmp eax, edx
jae 0x1020d48b
mov ecx, dword [esp + 0x10]
jmp 0x1020d451
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 0x1244]
push ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
call fcn.102374e0
jmp 0x1020d4f5
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [edi + 0x12c4]
lea esi, [eax + 0x10]
mov dword [esp + 0x10], eax
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
cmp dword [edx], 0
je 0x1020d4ee
mov edx, dword [edx + 8]
xor eax, eax
mov dword [esp + 0x14], ecx
test edx, edx
je 0x1020d4ee
mov dword [esp + 0x14], ecx
nop dword [eax + eax]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi]
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x1020d4e9
cmp dword [ecx], ebx
je 0x1020d539
inc eax
cmp eax, edx
jb 0x1020d4d0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea esi, [edi + 0x127c]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [edi + 0x126c]
test edx, edx
je 0x1020d608
xor eax, eax
cmp dword [edi + 0x1274], eax
jbe 0x1020d608
nop
mov ecx, dword [edx + eax*4]
test ecx, ecx
je 0x1020d52b
cmp dword [ecx], ebx
je 0x1020d559
inc eax
cmp eax, dword [edi + 0x1274]
jb 0x1020d520
jmp 0x1020d608
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 0x12c4]
push ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
call fcn.102374e0
jmp 0x1020d4f5
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 0x126c], 0
je 0x1020d608
mov edx, dword [edi + 0x1274]
xor eax, eax
mov dword [esp + 0x10], eax
test edx, edx
je 0x1020d608
nop dword [eax + eax]
mov esi, dword [edi + 0x126c]
lea ecx, [eax*4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx + esi]
lea esi, [edi + 0x127c]
test ecx, ecx
je 0x1020d5b2
cmp dword [ecx], ebx
je 0x1020d5bd
inc eax
mov dword [esp + 0x10], eax
cmp eax, edx
jb 0x1020d590
jmp 0x1020d608
push 0xc
push ecx
call fcn.1045088a
mov eax, dword [edi + 0x1274]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
add ecx, dword [edi + 0x126c]
lea eax, [eax*4 - 4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call fcn.10425d60
mov ecx, dword [edi + 0x1274]
add esp, 0x14
mov eax, dword [edi + 0x126c]
mov dword [eax + ecx*4 - 4], 0
dec dword [edi + 0x1274]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1020d625
cmp eax, ebx
je 0x1020d625
push eax
push dword [esp + 0x1c]
call fcn.1019ba60
push ebx
push dword [esp + 0x1c]
call fcn.1019ba60
mov esi, eax
cmp dword [edi + 0x108], ebx
jne 0x1020d7d5
cmp dword [edi + 0xec], 1
mov dword [edi + 0x108], 0
mov dword [edi + 0x59c0], 0
jne 0x1020d7a1
mov ecx, dword [edi + 0x53c8]
xor eax, eax
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x1020d678
mov eax, dword [ecx + 0xb4]
mov dword [esp + 0x10], eax
test byte [edi + 0xb1], 0x40
je 0x1020d69b
cmp eax, 1
jne 0x1020d69b
push eax
push 0
mov ecx, edi
lea ebx, [edi + 0x53fc]
call fcn.10207400
jmp 0x1020d71c
test byte [edi + 0xab], 2
je 0x1020d6e2
mov eax, dword [0x11d0c5b8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x10]
cmp dword [eax + 0xd590], 1
jne 0x1020d6e2
test byte [edi + 0xc4], 1
je 0x1020d6e2
test byte [edi + 0xaf], 0x10
je 0x1020d6e2
lea ebx, [edi + 0x53fc]
mov dword [ebx], 1
jmp 0x1020d71e
push 0x58
lea eax, [esp + 0x3c]
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov dword [esp + 0x6c], 0x4e564441
lea eax, [esp + 0x38]
mov dword [esp + 0x68], 1
mov ecx, edi
push eax
call fcn.102071a0
mov eax, dword [esp + 0x84]
lea ebx, [edi + 0x53fc]
mov dword [ebx], eax
test byte [edi + 0xb1], 0x40
je 0x1020d743
mov ecx, dword [edi + 0x53c8]
test ecx, ecx
je 0x1020d73c
mov eax, dword [esp + 0x10]
dec eax
mov dword [ecx + 0xb4], eax
and byte [edi + 0xb1], 0xbf
push 0x90
lea eax, [esp + 0x40]
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov dword [esp + 0x38], 0x94
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x3c], 6
jb 0x1020d790
cmp dword [esp + 0x40], 1
jb 0x1020d790
cmp dword [esp + 0x44], 0x1db0
jb 0x1020d790
mov eax, dword [edi + 0x53c8]
test eax, eax
je 0x1020d790
and dword [eax + 4], 0xfffffffd
mov eax, dword [edi + 0x53c8]
test eax, eax
je 0x1020d7a1
and dword [eax + 4], 0xffffff7f
mov al, byte [edi + 0xa4]
test al, 8
je 0x1020d7d5
or byte [edi + 0xaf], 1
and al, 0xf7
or byte [edi + 0xae], 0x80
mov dword [edi + 0x730], 0
mov dword [edi + 0x734], 0
mov byte [edi + 0xa4], al
test esi, esi
jns 0x1020d81d
call fcn.1027e6c0
mov dword [esp + 0x34], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x24], xmm0
cmp esi, 0x8007000e
je 0x1020d808
cmp esi, 0x80070057
jne 0x1020d810
mov dword [esp + 0x34], 2
jmp 0x1020d810
mov dword [esp + 0x34], 1
push eax
lea eax, [esp + 0x28]
mov ecx, esi
push eax
call fcn.1027e560
mov ecx, dword [esp + 0xd4]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 8