Function at 0x1001c1e1
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005a2d2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
mov dword [esp + 4], 0x1c76
xor ebx, ebx
push esi
mov dword [esp + 0x10], 0xfffe
push edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], ebx
jmp 0x1001c235
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x24], 0x923ccde6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001c225
cmp dword [esp + 0xc], 0xbe7e5505
ja 0x1001c252
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], ebx
jmp 0x1001c28a
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x24], ebx
jne 0x1001c290
mov dword [esp + 0x14], ebx
jmp 0x1001c280
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x24]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x24], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x1001c26c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1001c25c
mov dword [esp + 0x20], 0x39ed080c
mov dword [esp + 0xc], 0xe87df2f4
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0xc]
push 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
pop edi
jmp 0x1001c33f
mov dword [esp + 0x1c], 0xfffffff7
lea ecx, [esp + 0x40]
push edi
call fcn.10013d69
mov dword [esp + 0x10], 0xc407
mov dword [esp + 0x10], ebx
jmp 0x1001c2f4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x31d26ec1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001c2e1
mov dword [esp + 0x14], 0xfffffff0
jmp 0x1001c318
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
neg eax
mov dword [esp + 0x10], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xc
jge 0x1001c304
cmp dword [esp + 0x40], ebx
je 0x1001c33b
push dword [esp + 0x40]
call fcn.10040fec
pop ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x39
jl 0x1001c2c1
push 2
pop esi
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], 0xa1654207
push esi
call fcn.10013d69
mov dword [esp + 0x10], 0x57976326
mov dword [esp + 0x10], ebx
jmp 0x1001c388
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001c375
xor eax, eax
mov dword [esp + 0x10], ebx
inc eax
jmp 0x1001c3df
mov dword [esp + 0x14], eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jl 0x1001c3db
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001c3d2
push 0xa0f
push 0x1942
push ebx
call dword [sym.imp.GDI32.dll_OffsetRgn]
dec dword [esp + 0x14]
jns 0x1001c3a5
xor eax, eax
inc eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x1001c397
cmp dword [esp + 0x34], ebx
je 0x1001c401
push dword [esp + 0x34]
call fcn.10040fec
pop ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
push dword [esp + 0x30]
movdqa xmm0, xmmword [0x100080a0]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xa4]
mov dword [esp + 0x70], ebx
push eax
push ebx
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], ebx
movdqu xmmword [esp + 0xac], xmm0
mov dword [esp + 0x80], ebx
call fcn.10019201
push esi
lea ecx, [esp + 0x60]
mov dword [esp + 0xc8], ebx
call fcn.10013d69
mov dword [esp + 0xc], ebx
jmp 0x1001c466
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x78], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1001c456
mov dword [esp + 0xc], ebx
jmp 0x1001c486
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0xb58e469a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001c473
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 4], ebx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
cmp dword [ecx + 4], 1
mov dword [esp + eax*4 + 0x78], 0xd95e17ca
jl 0x1001c493
push ecx
call fcn.10040fec
pop ecx
mov dword [esp + 0x5c], ebx
lea ecx, [esp + 0x84]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x80], 9
push esi
call fcn.10013d69
xor edx, edx
inc edx
mov byte [esp + 0xc4], dl
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0xffffffec
cmp dword [esp + 0xc], 0xfffffff6
jge 0x1001c51d
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001c50f
push 0x1df7
push 0x2319
push ebx
call dword [sym.imp.USER32.dll_EnableMenuItem]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff6
jl 0x1001c4f3
xor edx, edx
inc edx
mov dword [esp + 0xc], ebx
jmp 0x1001c566
mov dword [esp + 0x10], edi
xor ecx, ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, 5
setle cl
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
cmp dword [esp + 0xc], ebx
jne 0x1001c56d
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffff
je 0x1001c523
mov dword [esp + 0xc], edx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10], 0x5196ee4e
push edi
call fcn.10013d69
mov dword [esp + 0x10], ebx
jmp 0x1001c599
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001c589
imul ecx, dword [esp + 0xc], 0x9d22
xor edx, edx
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
cmp ecx, eax
setge dl
xor ecx, ecx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
cmp eax, 0xb2c5
mov eax, dword [esp + 0xc]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setg cl
sub esi, ecx
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, eax
setl dl
xor ecx, ecx
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, edx
setg cl
cmp ecx, dword [edi + 8]
jne 0x1001c611
mov eax, dword [esp + 0xc]
mov dword [edi + 8], eax
jmp 0x1001c62e
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001c62e
push ebx
push 0x266b
push ebx
push 0x8ad
call dword [sym.imp.KERNEL32.dll_GetStringTypeW]
push dword [esp + 0x4c]
call fcn.10040fec
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
pop ecx
mov dword [esp + 0xc], ebx
jmp 0x1001c65a
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x58], 0x9978f3c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1001c64a
mov dword [esp + 0xc], 0x7e2799ac
mov dword [esp + 0x14], 8
mov dword [esp + 0x2c], 0x3ae5d5ec
mov dword [esp + 0xc], ebx
jmp 0x1001c6fa
mov dword [esp + 0x10], 1
mov dword [esp + 0x74], 0x1b44
mov dword [esp + 0x14], 5
mov dword [esp + 0x14], 0x948214d2
cmp dword [esp + 0x10], 0xfa5f9c71
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0xc]
sbb edx, edx
mov dword [esp + 0x14], eax
inc edx
mov eax, dword [esp + 0x14]
add eax, 0x21d7c43f
mov dword [esp + 0x14], eax
imul ecx, dword [esp + 0x14], 0xb604
mov eax, dword [esp + 0xc]
dec eax
add ecx, edx
add eax, ecx
jne 0x1001c6da
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x14], 0xfffffffc
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe6
jge 0x1001c67f
mov dword [esp + 0xc], ebx
jmp 0x1001c721
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x3847d228
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001c70b
mov dword [esp + 0x14], 0xed15
mov dword [esp + 0xc], 0xcfce
mov dword [esp + 0x10], 0xffcf33f2
mov dword [esp + 0x2c], 0xa85f88e1
mov dword [esp + 0x10], ebx
jmp 0x1001c761
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xac], 0x348f4a8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001c74e
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp eax, 1
setg cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
cmp eax, 0x6feb9e9d
setl cl
xor edx, edx
sub ecx, dword [esp + 0x14]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x2c], 0xef4a0426
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x58], edi
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x68]
setge dl
xor ecx, ecx
cmp edx, 0x1afa9b64
mov esi, dword [eax + 4]
setne cl
mov eax, dword [esp + 0x1c]
xor edx, edx
cmp eax, ecx
setl dl
add edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x20]
neg edx
sbb edx, edx
add edx, 0x94c18ec3
neg edx
sbb edx, edx
inc edx
imul edx, edi
sub edx, esi
neg edx
sbb edx, edx
inc edx
cmp edx, esi
jg 0x1001c814
cmp dword [esp + 0x80], ebx
je 0x1001c814
xor ecx, ecx
inc ecx
jmp 0x1001c816
mov ecx, ebx
mov eax, dword [esp + 0x84]
push 1
mov dword [eax], ecx
lea ecx, [esp + 0x94]
call fcn.10013d69
mov dword [esp + 0x10], ebx
jmp 0x1001c849
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 0x5b57fd54
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001c833
mov eax, dword [esp + 0x90]
push eax
mov byte [esp + 0xc8], 1
mov dword [eax], ebx
call fcn.10040fec
pop ecx
lea ecx, [esp + 0x28]
call fcn.1001bfea
push dword [esp + 0x84]
call fcn.10040fec
or dword [esp + 0xc8], 0xffffffff
pop ecx
push dword [esp + 0x68]
call fcn.10040fec
mov eax, dword [esp + 0x80]
pop ecx
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [esp + 0x30]
mov edi, edx
mov esi, eax
call fcn.1001baed
mov ecx, dword [esp + 0xbc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret