Function at 0x10012636
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10075429
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
push esi
and dword [ebp - 0xa8], 0
push 2
lea ecx, [ebp - 0xf4]
call fcn.1001737c
and dword [ebp - 4], 0
push 2
lea ecx, [ebp - 0x54]
call fcn.1001737c
mov byte [ebp - 4], 1
mov dword [ebp - 0x84], 0x2aa61fc2
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x1c], 0
jmp 0x1001269c
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x100126b5
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xf4]
call fcn.1001740a
and dword [eax], 0
jmp 0x10012695
mov dword [ebp - 0x1c], 0
jmp 0x100126c5
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x100126de
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x54]
call fcn.1001740a
mov dword [eax], 0x25d16df2
jmp 0x100126be
lea eax, [ebp - 0x54]
push eax
push 0x592a
push 0
lea eax, [ebp - 0xf4]
push eax
call fcn.10015725
add esp, 0x10
mov dword [ebp - 0x84], 0xffffffff
mov esi, dword [ebp - 0x84]
push 1
lea ecx, [ebp - 0x54]
call fcn.1001740a
cmp dword [eax], esi
jle 0x10012722
mov dword [ebp - 0xd8], 1
jmp 0x10012729
and dword [ebp - 0xd8], 0
push 0
lea ecx, [ebp - 0x54]
call fcn.1001740a
imul esi, dword [eax], 0xfa31
push 1
lea ecx, [ebp - 0x54]
call fcn.1001740a
cmp esi, dword [eax]
jge 0x10012753
mov dword [ebp - 0xd0], 1
jmp 0x1001275a
and dword [ebp - 0xd0], 0
push 0
lea ecx, [ebp - 0x54]
call fcn.1001740a
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [eax]
je 0x1001277a
mov dword [ebp - 0xe8], 1
jmp 0x10012781
and dword [ebp - 0xe8], 0
push 1
lea ecx, [ebp - 0x54]
call fcn.1001740a
push 1
lea ecx, [ebp - 0x54]
call fcn.1001740a
mov ecx, dword [ebp - 0x44]
cmp dword [eax], ecx
jle 0x100127a8
mov dword [ebp - 0xac], 1
jmp 0x100127af
and dword [ebp - 0xac], 0
push 1
lea ecx, [ebp - 0xf4]
call fcn.1001740a
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [eax]
je 0x100127cf
mov dword [ebp - 0x64], 1
jmp 0x100127d3
and dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x64], eax
jg 0x100127e7
mov dword [ebp - 0xcc], 1
jmp 0x100127ee
and dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0xcc], eax
jge 0x10012802
mov dword [ebp - 0x6c], 1
jmp 0x10012806
and dword [ebp - 0x6c], 0
push 1
lea ecx, [ebp - 0x54]
call fcn.1001740a
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x54]
call fcn.10017405
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf4]
call fcn.10017405
lea ecx, [ebp - 0x120]
call fcn.10017274
mov dword [ebp - 4], 2
mov dword [ebp - 0x108], 0xe0cf5720
mov byte [ebp - 0x21], 0
movzx eax, byte [ebp - 0x21]
test eax, eax
je 0x10012867
push 0
push 0x19db
push 0
call dword [sym.imp.GDI32.dll_GetRegionData]
mov byte [ebp - 0x20], 0
movzx eax, byte [ebp - 0x20]
test eax, eax
je 0x10012887
push 0x500e
push 0x44f2
push 0
call fcn.1001404f
add esp, 0xc
push dword [ebp + 0xc]
lea ecx, [ebp - 0x120]
call fcn.10017345
and dword [ebp - 0x2c], 0
jmp 0x100128a2
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jae 0x10012951
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0
jmp 0x100128c5
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xfffffff7
jl 0x10012914
mov dword [ebp - 0x3c], 0
jmp 0x100128db
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 1
jge 0x100128f1
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0xe0], 2
jmp 0x100128d4
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x34]
mov dword [ebp + eax - 0xe0], ecx
mov byte [ebp - 0x1e], 0
lea eax, [ebp - 0x1e]
push eax
push 0
call fcn.10013632
pop ecx
pop ecx
jmp 0x100128be
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x2c]
xor edx, edx
div dword [0x1007b830]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
movzx ecx, byte [ecx + eax]
call fcn.10008a33
push eax
lea ecx, [ebp - 0x120]
call fcn.10017306
jmp 0x1001289b
mov dword [ebp - 0x10], 0x2e08
mov dword [ebp - 0x30], 0xb0befcdf
mov dword [ebp - 0x18], 0xc1dfe936
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x48], 0xc0de450b
mov dword [ebp - 0xdc], 1
mov dword [ebp - 0x40], 0
jmp 0x1001298e
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 4
jge 0x100129a4
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x104], 0x80095520
jmp 0x10012987
push 6
pop eax
test eax, eax
je 0x10012a45
cmp dword [ebp - 0x10], 0
je 0x100129c7
cmp dword [ebp - 0x10], 0
je 0x100129c7
mov dword [ebp - 0xd4], 1
jmp 0x100129ce
and dword [ebp - 0xd4], 0
cmp dword [ebp - 0xd4], 0xffffffff
jl 0x100129e6
cmp dword [ebp - 0x10], 0
je 0x100129e6
mov dword [ebp - 0x74], 1
jmp 0x100129ea
and dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x10012a04
or eax, 0xffffffff
jne 0x10012a04
and dword [ebp - 0xb8], 0
jmp 0x10012a0e
mov dword [ebp - 0xb8], 1
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xfc9b
jg 0x10012a29
mov dword [ebp - 0x7c], 1
jmp 0x10012a2d
and dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x10012a45
mov dword [ebp - 0xc8], 1
jmp 0x10012a4c
and dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x10012a64
mov dword [ebp - 0x58], 1
jmp 0x10012a68
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x58], eax
jge 0x10012a7c
mov dword [ebp - 0xe4], 1
jmp 0x10012a83
and dword [ebp - 0xe4], 0
mov eax, 0x1466
sub eax, dword [ebp - 0x10]
imul eax, eax, 5
cmp dword [ebp - 0x10], eax
jl 0x10012a9f
mov dword [ebp - 0xc0], 1
jmp 0x10012aa6
and dword [ebp - 0xc0], 0
cmp dword [ebp - 0xc0], 6
jg 0x10012abb
mov dword [ebp - 0x8c], 1
jmp 0x10012ac2
and dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x10]
jg 0x10012ae1
push 0xfffffffffffffffd
pop eax
test eax, eax
jne 0x10012ae1
and dword [ebp - 0xb0], 0
jmp 0x10012aeb
mov dword [ebp - 0xb0], 1
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0xb0]
mov dword [ebp + eax - 0x104], ecx
mov dword [ebp - 0x10], 0x17
jmp 0x10012b0e
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xfffffff5
jge 0x10012ddb
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x94], 0x4499c77e
mov dword [ebp - 0x28], 0x5493a50e
mov dword [ebp - 0x98], 0xff24264a
mov dword [ebp - 0x90], 0xdfef28ed
mov dword [ebp - 0x94], 0
mov eax, dword [ebp - 0x94]
sub eax, 0xb
je 0x10012b6e
mov eax, 0xa8b1460d
test eax, eax
je 0x10012b6e
mov dword [ebp - 0xb4], 1
jmp 0x10012b75
and dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xfffffff7
jle 0x10012b90
mov dword [ebp - 0x9c], 1
jmp 0x10012b97
and dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x9c], eax
jl 0x10012bb4
cmp dword [ebp - 0x14], 0
je 0x10012bb4
mov dword [ebp - 0xbc], 1
jmp 0x10012bbb
and dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xbc]
neg eax
cmp dword [ebp - 0x18], eax
jg 0x10012bd4
mov dword [ebp - 0xa4], 1
jmp 0x10012bdb
and dword [ebp - 0xa4], 0
mov eax, dword [ebp - 0xa4]
sub eax, 0x456014ef
sub eax, dword [ebp - 0x14]
cmp eax, 0xc53a
jge 0x10012bfc
mov dword [ebp - 0xc4], 1
jmp 0x10012c03
and dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0xc4], eax
jle 0x10012c17
mov dword [ebp - 0x5c], 1
jmp 0x10012c1b
and dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x5c], eax
jl 0x10012c2c
mov dword [ebp - 0x60], 1
jmp 0x10012c30
and dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x60], eax
jne 0x10012c3e
cmp dword [ebp - 0x10], 0
jne 0x10012c53
cmp dword [ebp - 0x14], 0
jne 0x10012c53
mov eax, 0x98934eca
test eax, eax
jne 0x10012c53
and dword [ebp - 0x68], 0
jmp 0x10012c5a
mov dword [ebp - 0x68], 1
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x10]
jge 0x10012c81
push 4
pop eax
imul eax, eax, 3
cmp dword [ebp + eax - 0x104], 0
je 0x10012c81
mov dword [ebp - 0x70], 1
jmp 0x10012c85
and dword [ebp - 0x70], 0
cmp dword [ebp - 0x70], 0x206cbc8c
jl 0x10012c97
mov dword [ebp - 0x78], 1
jmp 0x10012c9b
and dword [ebp - 0x78], 0
cmp dword [ebp - 0x78], 0x29ef
je 0x10012cad
mov dword [ebp - 0x80], 1
jmp 0x10012cb1
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x80]
jg 0x10012cc5
mov dword [ebp - 0x88], 1
jmp 0x10012ccc
and dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x98]
cmp dword [ebp - 0x38], eax
jg 0x10012cf8
mov dword [ebp - 0xa0], 1
jmp 0x10012cff
and dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x48]
test eax, eax
je 0x10012d41
push 0x21ca
push 0x457e
lea eax, [ebp - 0x38]
push eax
push 0x4713
push 0
push 0x431e
lea eax, [ebp - 0xdc]
push eax
call fcn.10015881
add esp, 0x1c
jmp 0x10012dc2
mov dword [ebp - 0x18], 0
jmp 0x10012d51
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jg 0x10012d96
mov dword [ebp - 0x14], 0
jmp 0x10012d67
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jg 0x10012d83
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x104]
mov dword [ebp + ecx*4 - 0x104], eax
jmp 0x10012d60
mov byte [ebp - 0x1f], 0
push 0
lea eax, [ebp - 0x1f]
push eax
call fcn.100159e6
pop ecx
pop ecx
jmp 0x10012d4a
mov dword [ebp - 0x28], 3
jmp 0x10012da6
mov eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jl 0x10012dc2
push 0x36ba
push 0x5102
push 0
call fcn.100134a2
add esp, 0xc
jmp 0x10012d9f
mov byte [ebp - 0x1d], 0
movzx eax, byte [ebp - 0x1d]
test eax, eax
je 0x10012dd6
push 0
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
jmp 0x10012b07
lea eax, [ebp - 0x120]
push eax
mov ecx, dword [ebp + 8]
call fcn.10017285
mov eax, dword [ebp - 0xa8]
or eax, 1
mov dword [ebp - 0xa8], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x120]
call fcn.100172de
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret