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

Disassembly:
push 0xffffffffffffffff
push 0x10191619
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x101e5aec]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101e5aec]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov edi, dword [esp + 0xc0]
lea eax, [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x28], edx
mov ecx, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0xa0], 1
mov eax, dword [esp + 0x4c]
mov byte [eax], dl
mov dword [esp + 0xa0], 2
cmp dword [0x101d0884], 0xffffc29c
mov esi, esi
mov ecx, dword [ebx + 0x22c]
push ecx
push ebx
call fcn.1005c510
add esp, 8
cmp dword [0x101d0894], 0xffffe953
mov esi, dword [ebx + 0x90]
cmp dword [0x101d0894], 0xffffe953
fld qword [0x10198a40]
fld qword [esp + 0xc4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10067380
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x10067380
mov eax, dword [ebx + 0x228]
cmp dword [eax + esi*4], edx
jne 0x10066917
lea ecx, [esp + 0x3c]
fstp st(0)
push ecx
mov ecx, ebp
call fcn.100046a0
jmp 0x1006738e
fld qword [0x10198b80]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fmul st(1)
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov ax, word [esp + 0x20]
mov word [ebx + esi*4 + 0x230], ax
fldcw word [esp + 0x1c]
cmp dword [0x101d08a8], 0x389b
fmul qword [0x10198bc8]
fnstcw word [esp + 0x1c]
fadd qword [0x10198b68]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x20], eax
mov ax, 0xb
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov cx, word [esp + 0x20]
sub ax, cx
mov word [ebx + esi*4 + 0x232], ax
fldcw word [esp + 0x1c]
cmp dword [0x101d08a4], 0x755
movzx eax, word [ebx + esi*4 + 0x232]
cmp ax, dx
ja 0x100669b5
mov word [ebx + esi*4 + 0x232], dx
mov ah, ah
jmp 0x100669cf
cmp ax, 3
jb 0x100669cf
mov word [ebx + esi*4 + 0x232], 3
cmp dword [0x101d0888], 0xffffba2c
cmp dword [0x101d0890], 0x9c
push 0x4e21
call fcn.1012de1c
mov ebp, eax
add esp, 4
mov dword [esp + 0x34], ebp
mov ch, ch
test ebp, ebp
je 0x1006731b
mov dword [esp + 0x20], 0
cmp dword [0x101d0894], 0xffffe953
push 0xbb80
call fcn.1012de1c
add esp, 4
mov dword [esp + 0x2c], eax
mov esi, esi
test eax, eax
jne 0x10066a46
push ebp
call fcn.1012dedf
add esp, 4
cmp dword [0x101d0898], 0xffffa30d
cmp dword [0x101d0894], 0xffffe953
lea edx, [esp + 0x3c]
push edx
jmp 0x10067320
push 0x4e21
push 0
push ebp
call fcn.1012ea60
add esp, 0xc
mov cl, cl
mov eax, dword [esp + 0x2c]
push 0xbb80
push 0
push eax
call fcn.1012ea60
add esp, 0xc
nop
mov bl, bl
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0xc0]
push edi
push ecx
mov ecx, dword [esp + 0xc4]
push edx
push eax
push ecx
push esi
lea ecx, [esp + 0x38]
mov esi, ebx
call fcn.10061e90
add esp, 0x24
test eax, eax
jne 0x10066ae8
cmp dword [0x101d0894], 0xffffe953
push ebp
call fcn.1012dedf
add esp, 4
cmp dword [0x101d08a8], 0xffffc764
mov edx, dword [esp + 0x2c]
push edx
call fcn.1012dedf
add esp, 4
mov ch, ch
lea eax, [esp + 0x3c]
push eax
jmp 0x10067320
mov esi, dword [ebx + 0x1c]
cmp dword [0x101d0888], 0x45d3
mov ah, ah
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x24], eax
nop
xchg ebx, eax
xchg ebx, eax
mov bl, bl
test esi, esi
jne 0x10066b5e
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call ebp
mov esi, eax
mov eax, eax
push 0x4f
call ebp
mov edi, eax
mov eax, eax
push 0x4c
call ebp
mov ebx, eax
mov ebp, ebp
push 0x4d
call ebp
cmp dword [0x101d089c], 0x6d33
add esi, ebx
cmp dword [0x101d0890], 0x9c
add edi, eax
cmp dword [0x101d08a4], 0x755
mov ebp, dword [esp + 0x34]
jmp 0x10066bfc
cmp dword [0x101d0894], 0x16ac
lea ecx, [esp + 0x54]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
cmp dword [0x101d0890], 0xffffff63
push esi
call fcn.10058930
add esp, 4
cmp dword [0x101d08a8], 0x389b
cmp dword [ebx + 0x38], 5
jne 0x10066bbe
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x10066bbe
mov esi, dword [ebx + 0x30]
cmp dword [0x101d0898], 0x5cf2
mov edi, dword [ebx + 0x34]
cmp dword [0x101d089c], 0x6d33
jmp 0x10066bfc
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x54]
cmp dword [0x101d0884], 0x3d63
mov edi, dword [esp + 0x60]
sub edi, dword [esp + 0x58]
cmp dword [0x101d08a8], 0x389b
mov dword [ebx + 0x30], esi
cmp dword [0x101d089c], 0xffff92cc
mov dword [ebx + 0x34], edi
cmp dword [0x101d0890], 0xffffff63
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push edx
pop edx
cmp dword [esp + 0xb8], esi
jle 0x10066c22
mov dword [esp + 0xb8], esi
mov bl, bl
cmp dword [esp + 0xbc], edi
jle 0x10066c2d
push eax
pop eax
push 0x1772
call fcn.1012de1c
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
cmp dword [0x101d0898], 0x5cf2
push 0x1772
call fcn.1012de1c
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
push ecx
pop ecx
test edi, edi
je 0x10067362
test esi, esi
je 0x10067348
push 0x1772
push 0
push edi
call fcn.1012ea60
add esp, 0xc
cmp dword [0x101d0888], 0xffffba2c
push 0x1772
push 0
push esi
call fcn.1012ea60
add esp, 0xc
cmp dword [0x101d089c], 0xffff92cc
push edx
pop edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
jle 0x10067274
jmp 0x10066cc0
xor eax, eax
mov byte [esp + 0x54], 0
mov dword [esp + 0x55], eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov dword [esp + 0x6d], eax
mov word [esp + 0x71], ax
mov byte [esp + 0x73], al
cmp dword [0x101d08a4], 0x755
mov byte [esp + 0x74], al
mov dword [esp + 0x75], eax
mov dword [esp + 0x79], eax
mov dword [esp + 0x7d], eax
mov dword [esp + 0x81], eax
mov dword [esp + 0x85], eax
mov dword [esp + 0x89], eax
mov dword [esp + 0x8d], eax
mov word [esp + 0x91], ax
mov byte [esp + 0x93], al
push eax
pop eax
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
lea eax, [edi + edi*2]
lea ebx, [ecx + eax*8]
movzx eax, word [ebx]
add eax, dword [esp + 0x14]
cmp dword [0x101d08a0], 0x5de7
movzx esi, word [ebx + 2]
add esi, dword [esp + 0x18]
mov dh, dh
cmp dword [0x101d0894], 0x16ac
mov al, al
push eax
lea edx, [esp + 0x58]
push 0x10198ac0
push edx
call fcn.1012f577
add esp, 0xc
mov esi, esi
push esi
lea eax, [esp + 0x78]
push 0x10198ac0
push eax
call fcn.1012f577
add esp, 0xc
xchg ebx, eax
xchg ebx, eax
test edi, edi
jne 0x10066e19
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x54]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10066da6
cmp dword [0x101d0898], 0xffffa30d
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x74]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10066dc8
mov ebp, ebp
mov eax, dword [esp + 0x2c]
add eax, 8
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066de0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10066df2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d08a4], 0xfffff8aa
jmp 0x1006725f
movzx edx, word [ebx - 0x16]
movzx eax, word [ebx - 0x12]
mov esi, dword [esp + 0x38]
mov ecx, dword [esi + 0x80]
add eax, edx
movzx edx, word [ebx + 2]
lea edi, [ecx + eax]
cmp edx, edi
jge 0x10066fb9
movzx ecx, word [ebx - 0x18]
movzx edx, word [ebx - 0x14]
movzx eax, word [ebx]
add ecx, edx
add ecx, dword [esi + 0x8c]
cmp eax, ecx
jle 0x10066f79
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10066e60
mov cx, word [0x10198a60]
mov word [edi], cx
cmp dword [0x101d0898], 0x5cf2
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066e84
mov edi, dword [esp + 0x24]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10066e98
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d0884], 0x3d63
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10066ec1
mov dx, word [0x10198a60]
mov word [edi], dx
cmp dword [0x101d08a4], 0x755
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066ee5
mov edi, dword [esp + 0x1c]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10066f00
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push edx
pop edx
mov edi, ebp
add edi, 0xffffffff
nop
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10066f20
mov ax, word [0x10198a34]
mov word [edi], ax
mov ch, ch
lea eax, [ebx + 8]
mov ecx, eax
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066f40
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10066f52
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d0888], 0x45d3
jmp 0x1006725f
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066f80
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10066f92
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d0890], 0x9c
jmp 0x1006725f
mov edi, dword [esi + 0x88]
add edi, ecx
add edi, eax
cmp edx, edi
jle 0x100670e3
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10066fd2
mov cx, word [0x10198a60]
mov word [edi], cx
cmp dword [0x101d0888], 0x45d3
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10066ff6
mov edi, dword [esp + 0x24]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea ebx, [ebx]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10067010
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push edx
pop edx
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10067031
mov dx, word [0x10198a60]
mov word [edi], dx
mov dl, dl
lea eax, [esp + 0x74]
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10067050
mov edi, dword [esp + 0x1c]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10067064
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d08a0], 0xffffa218
mov edi, ebp
add edi, 0xffffffff
jmp 0x10067090
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10067090
mov ax, word [0x10198a34]
mov word [edi], ax
cmp dword [0x101d08a8], 0xffffc764
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100670b2
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100670c4
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, edx
jmp 0x1006725f
movzx ecx, word [ebx - 0x18]
movzx edx, word [ebx]
movzx eax, word [ebx - 0x14]
sub edx, ecx
sub edx, eax
sub edx, dword [esp + 0x14]
add edx, dword [esp + 0xb8]
cmp edx, dword [esi + 0x8c]
jle 0x1006722e
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10067110
mov cx, word [0x10198a60]
mov word [edi], cx
cmp dword [0x101d0888], 0x45d3
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10067134
mov edi, dword [esp + 0x24]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10067148
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d08a4], 0xfffff8aa
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10067171
mov dx, word [0x10198a60]
mov word [edi], dx
cmp dword [0x101d0888], 0xffffba2c
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10067195
mov edi, dword [esp + 0x1c]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100671b0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x101d088c], 0x6537
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100671d7
mov ax, word [0x10198a34]
mov word [edi], ax
cmp dword [0x101d0890], 0xffffff63
lea eax, [ebx + 8]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10067200
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10067212
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ecx
jmp 0x1006725f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10067233
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10067245
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ecx
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x10066cc0
mov esi, dword [esp + 0x24]
cmp byte [esi], 0
je 0x100672dd
push esi
lea ecx, [esp + 0x40]
call fcn.10004880
push edx
pop edx
push 0x10198a34
lea ecx, [esp + 0x40]
call fcn.10004880
cmp dword [0x101d08a0], 0x5de7
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.10004880
cmp dword [0x101d0894], 0xffffe953
push 0x10198a34
lea ecx, [esp + 0x40]
call fcn.10004880
mov dh, dh
push ebp
lea ecx, [esp + 0x40]
call fcn.10004880
cmp dword [0x101d0884], 0x3d63
mov eax, eax
push esi
call fcn.1012dedf
add esp, 4
mov ecx, ecx
mov edx, dword [esp + 0x1c]
push edx
call fcn.1012dedf
add esp, 4
push ecx
pop ecx
push ebp
call fcn.1012dedf
add esp, 4
cmp dword [0x101d0894], 0x16ac
mov eax, dword [esp + 0x2c]
push eax
call fcn.1012dedf
add esp, 4
mov al, al
lea ecx, [esp + 0x3c]
push ecx
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.100046a0
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10002070
mov eax, esi
jmp 0x100673a9
push edi
call fcn.1012dedf
add esp, 4
cmp dword [0x101d0898], 0xffffa30d
lea edx, [esp + 0x3c]
push edx
jmp 0x10067320
test esi, esi
je 0x10067379
push esi
call fcn.1012dedf
add esp, 4
cmp dword [0x101d0890], 0xffffff63
lea edx, [esp + 0x3c]
push edx
jmp 0x10067320
lea eax, [esp + 0x3c]
fstp st(0)
push eax
mov ecx, ebp
call fcn.100046a0
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10002070
mov eax, ebp
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.1012e3ba
add esp, 0x90
ret