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

Disassembly:
push 0xffffffffffffffff
push 0x1017a0d9
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x101ce2f4]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101ce2f4]
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
test eax, 0x2239
test bh, bh
mov eax, dword [ebx + 0x224]
cmp eax, ecx
je 0x1005f3ae
mov dword [ebx + 0x220], 0x101d80a0
nop
mov dword [ebx + 0x224], eax
mov al, al
jmp 0x1005f3c7
lea edx, [ebx + 0x8c]
mov dword [ebx + 0x220], edx
test dh, dh
mov dword [ebx + 0x224], ecx
test eax, 0x214c
mov eax, eax
mov esi, dword [ebx + 0x88]
test dh, dh
fld qword [0x10182918]
fld qword [esp + 0xc4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x1005fd00
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x1005fd00
mov eax, dword [ebx + 0x220]
cmp dword [eax + esi*4], ecx
jne 0x1005f41a
lea ecx, [esp + 0x3c]
fstp st(0)
push ecx
mov ecx, ebp
call fcn.1000cf30
jmp 0x1005fd0e
fld qword [0x101828c0]
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 al, al
mov dx, 0xb
fmul qword [0x10182910]
fnstcw word [esp + 0x1c]
fadd qword [0x101828a8]
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]
test ah, ah
movzx eax, word [ebx + esi*4 + 0x22a]
cmp ax, cx
ja 0x1005f4a8
mov word [ebx + esi*4 + 0x22a], cx
mov ch, ch
jmp 0x1005f4ba
cmp ax, 3
jb 0x1005f4ba
mov word [ebx + esi*4 + 0x22a], 3
test dh, dh
test dh, dh
push 0x4e21
call fcn.10116bdc
mov ebp, eax
add esp, 4
mov dword [esp + 0x34], ebp
test ebx, ebx
test ebp, ebp
jne 0x1005f505
lea eax, [esp + 0x3c]
push eax
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.1000cf30
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10006e20
mov eax, esi
jmp 0x1005fd29
mov dword [esp + 0x20], 0
test bl, bl
push 0xbb80
call fcn.10116bdc
add esp, 4
mov dword [esp + 0x2c], eax
test al, al
test eax, eax
jne 0x1005f539
push ebp
call fcn.10116c9f
add esp, 4
nop
test ch, ch
lea ecx, [esp + 0x3c]
push ecx
jmp 0x1005f4da
push 0x4e21
push 0
push ebp
call fcn.101182b0
add esp, 0xc
mov ah, ah
mov edx, dword [esp + 0x2c]
push 0xbb80
push 0
push edx
call fcn.101182b0
add esp, 0xc
test ah, ah
push ecx
pop ecx
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.1005b0f0
add esp, 0x24
test eax, eax
jne 0x1005f5cf
test eax, 0x1cca
push ebp
call fcn.10116c9f
add esp, 4
mov ah, ah
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.10116c9f
add esp, 4
test cl, cl
lea edx, [esp + 0x3c]
push edx
jmp 0x1005f4da
mov esi, dword [ebx + 0x18]
push ecx
pop ecx
mov edx, edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x24], eax
mov ah, ah
test edi, edi
mov bh, bh
test esi, esi
jne 0x1005f623
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call ebp
mov esi, eax
test eax, eax
push 0x4f
call ebp
mov edi, eax
mov ecx, ecx
push 0x4c
call ebp
mov ebx, eax
mov bh, bh
push 0x4d
call ebp
mov dh, dh
add esi, ebx
mov ebp, ebp
add edi, eax
mov dh, dh
mov ebp, dword [esp + 0x34]
jmp 0x1005f67e
test eax, eax
lea eax, [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, 0x3a59
push esi
call fcn.10052e70
add esp, 4
test ch, ch
cmp dword [ebx + 0x34], 5
jne 0x1005f65e
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x1005f65e
mov esi, dword [ebx + 0x2c]
test dl, dl
mov edi, dword [ebx + 0x30]
push eax
pop eax
jmp 0x1005f67e
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x54]
mov esi, esi
mov edi, dword [esp + 0x60]
sub edi, dword [esp + 0x58]
test eax, 0x3017
mov dword [ebx + 0x2c], esi
mov bh, bh
mov dword [ebx + 0x30], edi
nop
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, ecx
cmp dword [esp + 0xb8], esi
jle 0x1005f6a4
mov dword [esp + 0xb8], esi
push ecx
pop ecx
cmp dword [esp + 0xbc], edi
jle 0x1005f6b2
test eax, 0x7d2a
push 0x1772
call fcn.10116bdc
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov eax, eax
push 0x1772
call fcn.10116bdc
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
test ah, ah
test edi, edi
je 0x1005fce7
test esi, esi
je 0x1005fcd2
push 0x1772
push 0
push edi
call fcn.101182b0
add esp, 0xc
mov bh, bh
push 0x1772
push 0
push esi
call fcn.101182b0
add esp, 0xc
mov edi, edi
mov esi, esi
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
jle 0x1005fc3f
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
push ecx
pop ecx
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
test bh, bh
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]
mov ebp, ebp
movzx esi, word [ebx + 2]
add esi, dword [esp + 0x18]
test eax, 0x6381
push ecx
pop ecx
mov ah, ah
push eax
lea ecx, [esp + 0x58]
push 0x10182608
push ecx
call fcn.10119209
add esp, 0xc
test dl, dl
push esi
lea edx, [esp + 0x78]
push 0x10182608
push edx
call fcn.10119209
add esp, 0xc
test ch, ch
test edi, edi
jne 0x1005f861
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 0x1005f7f6
test eax, 0x488f
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 0x1005f813
mov ch, ch
mov eax, dword [esp + 0x2c]
add eax, 8
mov ecx, eax
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005f830
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1005f842
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 0x1005fc2a
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 0x1005f9c7
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 0x1005f991
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005f8a3
mov cx, word [0x1018290c]
mov word [edi], cx
mov bh, bh
lea eax, [esp + 0x54]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005f8c0
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 0x1005f8d4
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 ebp, ebp
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005f8f5
mov dx, word [0x1018290c]
mov word [edi], dx
push ecx
pop ecx
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005f911
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 0x1005f925
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 cl, cl
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005f944
mov ax, word [0x10182548]
mov word [edi], ax
push ebx
pop ebx
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005f960
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1005f972
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 edi, edi
jmp 0x1005fc2a
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005f996
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1005f9a8
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 bh, bh
jmp 0x1005fc2a
mov edi, dword [esi + 0x80]
add edi, ecx
add edi, eax
cmp edx, edi
jle 0x1005fad1
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005f9e0
mov cx, word [0x1018290c]
mov word [edi], cx
mov ch, ch
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fa00
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 0x1005fa14
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, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005fa35
mov dx, word [0x1018290c]
mov word [edi], dx
mov edx, edx
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fa51
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 0x1005fa65
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 dh, dh
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005fa84
mov ax, word [0x10182548]
mov word [edi], ax
mov cl, cl
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005faa0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1005fab2
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 bl, bl
jmp 0x1005fc2a
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 0x1005fbf2
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005fb00
mov cx, word [0x1018290c]
mov word [edi], cx
push ebx
pop ebx
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fb20
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 0x1005fb34
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, 0x7de6
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005fb58
mov dx, word [0x1018290c]
mov word [edi], dx
test cl, cl
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fb74
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 0x1005fb88
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 al, al
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1005fba7
mov ax, word [0x10182548]
mov word [edi], ax
test eax, 0x5849
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fbc4
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1005fbd6
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 ah, ah
jmp 0x1005fc2a
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1005fbf7
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 0x1005fc10
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 ch, ch
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x1005f725
mov esi, dword [esp + 0x24]
cmp byte [esi], 0
je 0x1005fc93
push esi
lea ecx, [esp + 0x40]
call fcn.10011930
mov edx, edx
push 0x10182548
lea ecx, [esp + 0x40]
call fcn.10011930
test bl, bl
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.10011930
test al, al
push 0x10182548
lea ecx, [esp + 0x40]
call fcn.10011930
test eax, 0x1544
push ebp
lea ecx, [esp + 0x40]
call fcn.10011930
test al, al
test dh, dh
push esi
call fcn.10116c9f
add esp, 4
test dl, dl
mov edx, dword [esp + 0x1c]
push edx
call fcn.10116c9f
add esp, 4
mov ebp, ebp
push ebp
call fcn.10116c9f
add esp, 4
nop
mov eax, dword [esp + 0x2c]
push eax
call fcn.10116c9f
add esp, 4
test eax, eax
lea ecx, [esp + 0x3c]
push ecx
jmp 0x1005f4da
push edi
call fcn.10116c9f
add esp, 4
mov dh, dh
lea edx, [esp + 0x3c]
push edx
jmp 0x1005f4da
test esi, esi
je 0x1005fcf6
push esi
call fcn.10116c9f
add esp, 4
test al, al
lea edx, [esp + 0x3c]
push edx
jmp 0x1005f4da
lea eax, [esp + 0x3c]
fstp st(0)
push eax
mov ecx, ebp
call fcn.1000cf30
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10006e20
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.1011717a
add esp, 0x90
ret