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

Disassembly:
push 0xffffffffffffffff
push 0x1017b239
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x101ce00c]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101ce00c]
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 ecx, ecx
mov dword [esp + 0x28], ecx
mov edx, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0xa0], 1
mov eax, dword [esp + 0x4c]
mov byte [eax], cl
mov dword [esp + 0xa0], 2
mov ecx, ecx
mov edx, edx
mov eax, dword [ebx + 0x224]
cmp eax, ecx
je 0x1005fd1c
mov dword [ebx + 0x220], 0x101d69e8
test esi, esi
mov dword [ebx + 0x224], eax
mov bh, bh
jmp 0x1005fd35
lea edx, [ebx + 0x8c]
mov dword [ebx + 0x220], edx
test eax, 0x3eb0
mov dword [ebx + 0x224], ecx
xchg ebx, eax
xchg ebx, eax
test bl, bl
mov esi, dword [ebx + 0x88]
mov ecx, ecx
fld qword [0x10181ba8]
fld qword [esp + 0xc4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10060676
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x10060676
mov eax, dword [ebx + 0x220]
cmp dword [eax + esi*4], ecx
jne 0x1005fd88
lea ecx, [esp + 0x3c]
fstp st(0)
push ecx
mov ecx, ebp
call fcn.10003dd0
jmp 0x10060684
fld qword [0x10181b58]
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 dx, word [esp + 0x20]
mov word [ebx + esi*4 + 0x228], dx
fldcw word [esp + 0x1c]
test dl, dl
mov dx, 0xb
fmul qword [0x10181ba0]
fnstcw word [esp + 0x1c]
fadd qword [0x10181b40]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov ax, word [esp + 0x20]
sub dx, ax
mov word [ebx + esi*4 + 0x22a], dx
fldcw word [esp + 0x1c]
mov ebx, ebx
movzx eax, word [ebx + esi*4 + 0x22a]
cmp ax, cx
ja 0x1005fe16
mov word [ebx + esi*4 + 0x22a], cx
mov edx, edx
jmp 0x1005fe28
cmp ax, 3
jb 0x1005fe28
mov word [ebx + esi*4 + 0x22a], 3
mov ch, ch
mov ebx, ebx
push 0x4e21
call fcn.10117b2c
mov ebp, eax
add esp, 4
mov dword [esp + 0x34], ebp
test bh, bh
test ebp, ebp
jne 0x1005fe73
lea eax, [esp + 0x3c]
push eax
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.10003dd0
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10001dc0
mov eax, esi
jmp 0x1006069f
mov dword [esp + 0x20], 0
test cl, cl
push 0xbb80
call fcn.10117b2c
add esp, 4
mov dword [esp + 0x2c], eax
test eax, 0x72b7
test eax, eax
jne 0x1005feab
push ebp
call fcn.10117bef
add esp, 4
push ebx
pop ebx
test dl, dl
lea ecx, [esp + 0x3c]
push ecx
jmp 0x1005fe48
push 0x4e21
push 0
push ebp
call fcn.10118770
add esp, 0xc
mov ebp, ebp
mov edx, dword [esp + 0x2c]
push 0xbb80
push 0
push edx
call fcn.10118770
add esp, 0xc
test edx, edx
test dl, dl
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0xc0]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xc0]
push edi
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
push eax
push esi
lea ecx, [esp + 0x38]
mov esi, ebx
call fcn.1005b920
add esp, 0x24
test eax, eax
jne 0x1005ff3e
push ebx
pop ebx
push ebp
call fcn.10117bef
add esp, 4
mov cl, cl
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.10117bef
add esp, 4
mov bh, bh
lea edx, [esp + 0x3c]
push edx
jmp 0x1005fe48
mov esi, dword [ebx + 0x18]
mov ecx, ecx
test bl, bl
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x24], eax
mov edx, edx
test bl, bl
test dl, dl
test esi, esi
jne 0x1005ff92
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call ebp
mov esi, eax
test al, al
push 0x4f
call ebp
mov edi, eax
push edx
pop edx
push 0x4c
call ebp
mov ebx, eax
mov ebp, ebp
push 0x4d
call ebp
push edx
pop edx
add esi, ebx
mov ecx, ecx
add edi, eax
push ebx
pop ebx
mov ebp, dword [esp + 0x34]
jmp 0x1005ffee
mov ch, ch
lea eax, [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, 0x39ad
push esi
call fcn.10053690
add esp, 4
push ecx
pop ecx
cmp dword [ebx + 0x34], 5
jne 0x1005ffd0
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x1005ffd0
mov esi, dword [ebx + 0x2c]
test edx, edx
mov edi, dword [ebx + 0x30]
test eax, 0x18df
jmp 0x1005ffee
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x54]
push edx
pop edx
mov edi, dword [esp + 0x60]
sub edi, dword [esp + 0x58]
mov ebp, ebp
mov dword [ebx + 0x2c], esi
mov ecx, ecx
mov dword [ebx + 0x30], edi
test ch, ch
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
test bl, bl
cmp dword [esp + 0xb8], esi
jle 0x10060014
mov dword [esp + 0xb8], esi
test bh, bh
cmp dword [esp + 0xbc], edi
jle 0x1006001f
test esi, esi
push 0x1772
call fcn.10117b2c
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
test eax, 0x4da
push 0x1772
call fcn.10117b2c
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
push ebx
pop ebx
test edi, edi
je 0x1006065d
test esi, esi
je 0x10060648
push 0x1772
push 0
push edi
call fcn.10118770
add esp, 0xc
mov edx, edx
push 0x1772
push 0
push esi
call fcn.10118770
add esp, 0xc
test esi, esi
mov dh, dh
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
jle 0x100605b4
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
nop
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 edx
pop edx
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
lea edx, [edi + edi*2]
lea ebx, [eax + edx*8]
movzx eax, word [ebx]
add eax, dword [esp + 0x14]
test esi, esi
movzx esi, word [ebx + 2]
add esi, dword [esp + 0x18]
test edx, edx
mov eax, eax
mov ch, ch
push eax
lea ecx, [esp + 0x58]
push 0x10181aa0
push ecx
call fcn.10119287
add esp, 0xc
push edx
pop edx
push esi
lea edx, [esp + 0x78]
push 0x10181aa0
push edx
call fcn.10119287
add esp, 0xc
mov ebx, ebx
test edi, edi
jne 0x100601cf
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 0x10060162
mov eax, eax
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x74]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10060180
mov bh, bh
mov eax, dword [esp + 0x2c]
add eax, 8
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060197
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100601b0
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 esi, esi
jmp 0x1006059f
movzx edx, word [ebx - 0x16]
movzx eax, word [ebx - 0x12]
mov esi, dword [esp + 0x38]
mov ecx, dword [esi + 0x78]
add eax, edx
movzx edx, word [ebx + 2]
lea edi, [ecx + eax]
cmp edx, edi
jge 0x1006033f
movzx ecx, word [ebx - 0x18]
movzx edx, word [ebx - 0x14]
movzx eax, word [ebx]
add ecx, edx
add ecx, dword [esi + 0x84]
cmp eax, ecx
jle 0x10060302
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060211
mov cx, word [0x10181a40]
mov word [edi], cx
test eax, 0x3000
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060230
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 0x10060244
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]
test eax, 0x6aa0
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060268
mov dx, word [0x10181a40]
mov word [edi], dx
push edx
pop edx
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060284
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 0x10060298
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 ch, ch
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100602b7
mov ax, word [0x10181a24]
mov word [edi], ax
mov al, al
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100602d1
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100602e3
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]
test al, al
jmp 0x1006059f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060307
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10060320
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]
test ah, ah
jmp 0x1006059f
mov edi, dword [esi + 0x80]
add edi, ecx
add edi, eax
cmp edx, edi
jle 0x10060451
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060358
mov cx, word [0x10181a40]
mov word [edi], cx
mov esi, esi
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060374
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 0x10060388
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]
test dl, dl
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100603b0
mov dx, word [0x10181a40]
mov word [edi], dx
nop
lea eax, [esp + 0x74]
mov ecx, eax
jmp 0x100603d0
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100603d0
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 0x100603e4
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 esi, esi
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060403
mov ax, word [0x10181a24]
mov word [edi], ax
mov al, al
lea eax, [ebx + 8]
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060420
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10060432
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 ebx
pop ebx
jmp 0x1006059f
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 + 0x84]
jle 0x1006056e
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060480
mov cx, word [0x10181a40]
mov word [edi], cx
mov ecx, ecx
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100604a0
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 0x100604b4
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]
test edx, edx
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100604d5
mov dx, word [0x10181a40]
mov word [edi], dx
mov ebp, ebp
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100604f1
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 0x10060505
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]
test al, al
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10060524
mov ax, word [0x10181a24]
mov word [edi], ax
push eax
pop eax
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060540
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10060552
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]
test bh, bh
jmp 0x1006059f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10060573
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10060585
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]
test eax, eax
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x10060095
mov esi, dword [esp + 0x24]
cmp byte [esi], 0
je 0x10060605
push esi
lea ecx, [esp + 0x40]
call fcn.100042f0
mov ebp, ebp
push 0x10181a24
lea ecx, [esp + 0x40]
call fcn.100042f0
mov eax, eax
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.100042f0
test eax, eax
push 0x10181a24
lea ecx, [esp + 0x40]
call fcn.100042f0
push eax
pop eax
push ebp
lea ecx, [esp + 0x40]
call fcn.100042f0
mov ah, ah
test dh, dh
push esi
call fcn.10117bef
add esp, 4
mov bl, bl
mov edx, dword [esp + 0x1c]
push edx
call fcn.10117bef
add esp, 4
mov dh, dh
push ebp
call fcn.10117bef
add esp, 4
test edi, edi
mov eax, dword [esp + 0x2c]
push eax
call fcn.10117bef
add esp, 4
test eax, 0x3641
lea ecx, [esp + 0x3c]
push ecx
jmp 0x1005fe48
push edi
call fcn.10117bef
add esp, 4
mov esi, esi
lea edx, [esp + 0x3c]
push edx
jmp 0x1005fe48
test esi, esi
je 0x1006066c
push esi
call fcn.10117bef
add esp, 4
test dh, dh
lea edx, [esp + 0x3c]
push edx
jmp 0x1005fe48
lea eax, [esp + 0x3c]
fstp st(0)
push eax
mov ecx, ebp
call fcn.10003dd0
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10001dc0
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.101180ca
add esp, 0x90
ret