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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10088e16
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc8
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], edx
xor ebx, ebx
cmp dword [edi + 0x10], ebx
jne 0x1001aa42
xor al, al
jmp 0x1001b083
lea eax, [esp + 0x30]
push eax
push ebx
push 0x5966
call fcn.1001cdff
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x1001aa5f
mov esi, dword [edi]
jmp 0x1001aa61
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x1001aa6b
mov ecx, dword [edi]
jmp 0x1001aa6d
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x1001add9
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1001aa95
push ebx
push 0x2e3
push ebx
call dword [sym.imp.GDI32.dll_GetObjectW]
lea eax, [esp + 0x2b]
mov byte [esp + 0x2b], bl
push ebx
push eax
call fcn.1001dcee
mov al, byte [esi]
pop ecx
pop ecx
cmp al, 0x30
jl 0x1001ac23
cmp al, 0x39
jg 0x1001ac23
push dword [esp + 0x38]
movdqa xmm0, xmmword [0x100082d0]
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x14], 0xa4f833fc
push eax
mov dword [esp + 0x20], 0xa1efe0c2
lea ecx, [esp + 0x5c]
push ebx
movdqu xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
call fcn.100185df
mov dword [esp + 0x14], ebx
jmp 0x1001ab19
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x20], 4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1001ab09
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jl 0x1001ab44
mov dword [esp + 0x14], 0x68876942
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x20]
mov dword [esp + 0x14], eax
dec dword [esp + 0xc]
jns 0x1001ab2a
cmp dword [esp + 0x20], ebx
je 0x1001ab55
cmp dword [esp + 0xc], ebx
je 0x1001ab55
xor edx, edx
inc edx
jmp 0x1001ab57
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp ecx, 0x13ca
setl dl
xor ecx, ecx
sub edx, eax
mov eax, dword [esp + 0x20]
imul eax, edx
cmp eax, 0x8ec
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
sub ecx, eax
mov eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp edx, 0xfffffff6
setl cl
add eax, ecx
xor ecx, ecx
cmp eax, 0x1418
setg cl
xor eax, eax
imul ecx, dword [esp + 0xc]
cmp ecx, 9
setg al
xor ecx, ecx
cmp eax, 1
setge cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
sub edx, eax
mov eax, dword [esp + 0xc]
cmp eax, edx
setle cl
xor edx, edx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x20]
cmp eax, 5
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x50]
setl cl
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x50]
call fcn.10017189
mov edx, dword [esp + 0x30]
movsx eax, byte [esi]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x1001aa61
xor esi, esi
inc esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], 0xfffffffc
mov dword [esp + 0x4c], 0x4498b94b
mov dword [esp + 0x34], 0x783518f
mov eax, dword [esp + 0x3c]
neg eax
mov dword [esp + 0x2c], eax
je 0x1001ac88
lea eax, [esp + 0x4c]
mov dword [esp + 0x44], 0x6eda
push eax
push ebx
lea eax, [esp + 0x50]
mov dword [esp + 0x50], 0xfffffff6
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x44]
push eax
lea edx, [esp + 0x58]
lea ecx, [esp + 0x50]
call fcn.1001a944
add esp, 0x14
jmp 0x1001ad12
push 2
lea ecx, [esp + 0x70]
call fcn.10017107
push ebx
push 0x12ff
lea eax, [esp + 0xa4]
mov dword [esp + 0xe4], ebx
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x4c], ebx
push eax
push 0xe5a
call fcn.1001c117
push 0x8f4
push 0x5dd0
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x60]
push eax
push ebx
push 0x7399
push 0x21e3
push 0x92b
lea eax, [esp + 0xa0]
push eax
push 0x70c7
lea eax, [esp + 0x68]
push eax
push 0x4a34
call fcn.1001d4b1
or dword [esp + 0x120], 0xffffffff
lea ecx, [esp + 0xb0]
add esp, 0x44
call fcn.10017189
push 0x3b49
lea eax, [esp + 0x34]
push eax
push ebx
push 0x2c69
call fcn.1001bfae
add esp, 0x10
lea ecx, [esp + 0x90]
push 2
call fcn.10017107
push ebx
lea eax, [esp + 0xb0]
mov dword [esp + 0xe0], esi
push eax
push 0x47eb
lea eax, [esp + 0x9c]
mov dword [esp + 0x24], 0xfffffffb
push eax
push 0x70d9
call fcn.1001c1be
add esp, 0x14
mov dword [esp + 0x18], ebx
jmp 0x1001adc1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], 0xef9d7865
mov dword [esp + 0x14], 1
cmp dword [esp + 0x14], ebx
jl 0x1001adbd
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x90]
cmp dword [eax + ecx*4], 0xcf09
setne dl
mov dword [esp + 0x24], edx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1001adb7
push ebx
call fcn.1001cf84
pop ecx
dec dword [esp + 0x14]
jns 0x1001ad8a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jle 0x1001ad70
lea ecx, [esp + 0x90]
call fcn.10017189
jmp 0x1001aa3b
mov dword [esp + 0x14], 0xfb871c7b
lea ecx, [esp + 0xa0]
mov dword [esp + 0x24], 0x5c82f744
push 0xfffffffffffffff8
pop eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], 0xfffffffb
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], 5
mov dword [esp + 0x1c], 0x364f2ca1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], 0xe85dc32c
mov dword [esp + 0x1c], 0xffffffff
push 2
call fcn.10017107
push 2
pop edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xc], ebx
jmp 0x1001ae55
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x84], 0x64a6847d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x1001ae42
mov dword [esp + 0xc], ebx
jmp 0x1001ae78
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xa0]
mov dword [eax + ecx*4], 0x49f7fae0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001ae62
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1001aeb4
push 0x7253
push 1
push 0x59ea
push 0x7ff6
push 0x541b
mov edx, 0x19ea
mov ecx, 0x7e11
call fcn.1001a944
add esp, 0x14
push 2
pop edx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], ebx
jl 0x1001b075
mov esi, 0x924f
mov dword [esp + 0xc], 0x443250e6
lea ecx, [esp + 0xb4]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
push 4
call fcn.10017107
mov byte [esp + 0xdc], 3
mov dword [esp + 0x1c], 9
mov dword [esp + 0x18], ebx
jmp 0x1001af19
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001af03
mov dword [esp + 0xc], ebx
jmp 0x1001afb7
mov dword [esp + 0x18], 0x39ecf4a
mov dword [esp + 0x1c], 0xed55c59c
cmp dword [esp + 0x18], ebx
jne 0x1001af7b
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x18]
cmp eax, 0xf8609561
jb 0x1001af68
cmp dword [esp + 0x18], ebx
jne 0x1001af68
mov eax, ebx
jmp 0x1001af6b
xor eax, eax
inc eax
cmp eax, dword [esp + 0x60]
jl 0x1001af7b
cmp dword [esp + 0xc], ebx
jne 0x1001af7b
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x84]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x84], ecx
mov eax, dword [esp + 0x18]
cmp ecx, eax
setle dl
xor ecx, ecx
sub edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
cmp edx, eax
setl cl
mov dword [esp + 0x1c], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jle 0x1001af29
mov dword [esp + 0x24], 2
cmp dword [esp + 0x24], ebx
jl 0x1001b057
push 1
lea ecx, [esp + 0x7c]
call fcn.10017107
lea eax, [esp + 0xb0]
mov byte [esp + 0xdc], 4
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x20], ebx
push eax
mov dword [esp + 0x40], ebx
mov dl, 1
push 0x3cb7
mov ecx, 0x52f3
call fcn.1001a9b8
mov eax, dword [esp + 0x30]
add esp, 0xc
cmp dword [esp + eax*4 + 0x84], ebx
jne 0x1001b04e
lea eax, [esp + 0x38]
push eax
push 0x7361
push 0x1f51
push ebx
call fcn.1001b159
add esp, 0x10
mov byte [esp + 0xdc], 3
lea ecx, [esp + 0x78]
call fcn.10017189
dec dword [esp + 0x24]
jns 0x1001afd4
jmp 0x1001b057
lea ecx, [esp + 0x78]
call fcn.10017189
lea ecx, [esp + 0xb4]
mov byte [esp + 0xdc], 2
call fcn.10017189
dec dword [esp + 0x14]
jns 0x1001aec7
lea ecx, [esp + 0xa0]
call fcn.10017189
mov al, 1
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret