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

Disassembly:
push 0xffffffffffffffff
push 0x10152479
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x101a53c4]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101a53c4]
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 bl, bl
mov ecx, ecx
mov eax, dword [ebx + 0x22c]
cmp eax, ecx
je 0x1004860c
mov dword [ebx + 0x228], 0x102addb0
mov ebx, ebx
mov dword [ebx + 0x22c], eax
push ecx
pop ecx
jmp 0x10048622
lea edx, [ebx + 0x94]
mov dword [ebx + 0x228], edx
mov dh, dh
mov dword [ebx + 0x22c], ecx
mov ecx, ecx
mov cl, cl
mov esi, dword [ebx + 0x90]
push ecx
pop ecx
fld qword [0x1015a468]
fld qword [esp + 0xc4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10048f53
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x10048f53
mov eax, dword [ebx + 0x228]
cmp dword [eax + esi*4], ecx
jne 0x10048675
lea ecx, [esp + 0x3c]
fstp st(0)
push ecx
mov ecx, ebp
call fcn.10009530
jmp 0x10048f61
fld qword [0x1015a7f8]
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 + 0x230], dx
fldcw word [esp + 0x1c]
mov bl, bl
mov dx, 0xb
fmul qword [0x1015a840]
fnstcw word [esp + 0x1c]
fadd qword [0x1015a7e8]
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 + 0x232], dx
fldcw word [esp + 0x1c]
mov bh, bh
movzx eax, word [ebx + esi*4 + 0x232]
cmp ax, cx
ja 0x10048703
mov word [ebx + esi*4 + 0x232], cx
mov edi, edi
jmp 0x10048715
cmp ax, 3
jb 0x10048715
mov word [ebx + esi*4 + 0x232], 3
mov edx, edx
mov cl, cl
push 0x4e21
call fcn.100f4a78
mov ebp, eax
add esp, 4
mov dword [esp + 0x34], ebp
mov dh, dh
test ebp, ebp
jne 0x10048760
lea eax, [esp + 0x3c]
push eax
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.10009530
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.100067f0
mov eax, esi
jmp 0x10048f7c
mov dword [esp + 0x20], 0
mov dh, dh
push 0xbb80
call fcn.100f4a78
add esp, 4
mov dword [esp + 0x2c], eax
mov al, al
test eax, eax
jne 0x10048795
push ebp
call fcn.100f4b3b
add esp, 4
mov bl, bl
mov ch, ch
lea ecx, [esp + 0x3c]
push ecx
jmp 0x10048735
push 0x4e21
push 0
push ebp
call fcn.100f5b10
add esp, 0xc
push ecx
pop ecx
mov edx, dword [esp + 0x2c]
push 0xbb80
push 0
push edx
call fcn.100f5b10
add esp, 0xc
mov al, al
mov bl, bl
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.10044430
add esp, 0x24
test eax, eax
jne 0x10048828
mov cl, cl
push ebp
call fcn.100f4b3b
add esp, 4
mov ecx, ecx
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.100f4b3b
add esp, 4
push ecx
pop ecx
lea edx, [esp + 0x3c]
push edx
jmp 0x10048735
mov esi, dword [ebx + 0x1c]
mov bl, bl
mov eax, eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x24], eax
mov ebp, ebp
mov edi, edi
mov al, al
test esi, esi
jne 0x1004887c
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call ebp
mov esi, eax
mov ecx, ecx
push 0x4f
call ebp
mov edi, eax
push ecx
pop ecx
push 0x4c
call ebp
mov ebx, eax
push ecx
pop ecx
push 0x4d
call ebp
push eax
pop eax
add esi, ebx
mov dl, dl
add edi, eax
mov bh, bh
mov ebp, dword [esp + 0x34]
jmp 0x100488d2
mov dl, dl
lea eax, [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
push eax
pop eax
push esi
call fcn.1003c290
add esp, 4
mov dh, dh
cmp dword [ebx + 0x38], 5
jne 0x100488b4
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x100488b4
mov esi, dword [ebx + 0x30]
mov edi, edi
mov edi, dword [ebx + 0x34]
xchg ebx, eax
xchg ebx, eax
jmp 0x100488d2
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x54]
push eax
pop eax
mov edi, dword [esp + 0x60]
sub edi, dword [esp + 0x58]
mov bl, bl
mov dword [ebx + 0x30], esi
push ebx
pop ebx
mov dword [ebx + 0x34], edi
mov al, al
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push ecx
pop ecx
cmp dword [esp + 0xb8], esi
jle 0x100488f8
mov dword [esp + 0xb8], esi
push ebx
pop ebx
cmp dword [esp + 0xbc], edi
jle 0x10048903
mov dl, dl
push 0x1772
call fcn.100f4a78
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov al, al
push 0x1772
call fcn.100f4a78
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
mov edi, edi
test edi, edi
je 0x10048f3a
test esi, esi
je 0x10048f25
push 0x1772
push 0
push edi
call fcn.100f5b10
add esp, 0xc
mov ch, ch
push 0x1772
push 0
push esi
call fcn.100f5b10
add esp, 0xc
mov bh, bh
mov ah, ah
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
jle 0x10048e94
jmp 0x10048980
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
xchg ebx, eax
xchg ebx, eax
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
mov edx, 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]
mov cl, cl
movzx esi, word [ebx + 2]
add esi, dword [esp + 0x18]
push ebx
pop ebx
mov ebx, ebx
mov ebp, ebp
push eax
lea ecx, [esp + 0x58]
push 0x1015a558
push ecx
call fcn.100f68f0
add esp, 0xc
nop
push esi
lea edx, [esp + 0x78]
push 0x1015a558
push edx
call fcn.100f68f0
add esp, 0xc
xchg ebx, eax
xchg ebx, eax
test edi, edi
jne 0x10048abf
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x54]
mov ecx, eax
sub edx, ecx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10048a50
push edx
pop edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x74]
mov ecx, eax
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10048a70
mov ah, ah
mov eax, dword [esp + 0x2c]
add eax, 8
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048a87
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 0x10048aa0
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
jmp 0x10048e7f
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 0x10048c27
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 0x10048bf1
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048b04
mov cx, word [0x1015a470]
mov word [edi], cx
mov dl, dl
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048b20
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 0x10048b34
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 0x10048b55
mov dx, word [0x1015a470]
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 0x10048b71
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 0x10048b85
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
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048ba4
mov ax, word [0x1015a45c]
mov word [edi], ax
push ecx
pop ecx
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048bc0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048bd2
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
jmp 0x10048e7f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048bf6
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048c08
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
jmp 0x10048e7f
mov edi, dword [esi + 0x88]
add edi, ecx
add edi, eax
cmp edx, edi
jle 0x10048d31
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048c40
mov cx, word [0x1015a470]
mov word [edi], cx
mov ebx, ebx
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048c60
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 0x10048c74
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, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048c95
mov dx, word [0x1015a470]
mov word [edi], dx
mov cl, cl
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048cb1
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 0x10048cc5
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]
xchg ebx, eax
xchg ebx, eax
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048ce4
mov ax, word [0x1015a45c]
mov word [edi], ax
mov eax, eax
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048d00
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048d12
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
jmp 0x10048e7f
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 0x10048e4e
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048d60
mov cx, word [0x1015a470]
mov word [edi], cx
mov bl, bl
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048d80
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 0x10048d94
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
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048db5
mov dx, word [0x1015a470]
mov word [edi], dx
mov al, al
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048dd1
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 0x10048de5
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 0x10048e04
mov ax, word [0x1015a45c]
mov word [edi], ax
mov edi, edi
lea eax, [ebx + 8]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048e20
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048e32
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 0x10048e7f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048e53
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048e65
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
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x10048980
mov esi, dword [esp + 0x24]
cmp byte [esi], 0
je 0x10048ee5
push esi
lea ecx, [esp + 0x40]
call fcn.10009710
mov bh, bh
push 0x1015a45c
lea ecx, [esp + 0x40]
call fcn.10009710
push ebx
pop ebx
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.10009710
push edx
pop edx
push 0x1015a45c
lea ecx, [esp + 0x40]
call fcn.10009710
mov esi, esi
push ebp
lea ecx, [esp + 0x40]
call fcn.10009710
mov cl, cl
mov ebx, ebx
push esi
call fcn.100f4b3b
add esp, 4
mov bh, bh
mov edx, dword [esp + 0x1c]
push edx
call fcn.100f4b3b
add esp, 4
mov esi, esi
push ebp
call fcn.100f4b3b
add esp, 4
push ebx
pop ebx
mov eax, dword [esp + 0x2c]
push eax
call fcn.100f4b3b
add esp, 4
mov edx, edx
lea ecx, [esp + 0x3c]
push ecx
jmp 0x10048735
push edi
call fcn.100f4b3b
add esp, 4
mov dl, dl
lea edx, [esp + 0x3c]
push edx
jmp 0x10048735
test esi, esi
je 0x10048f49
push esi
call fcn.100f4b3b
add esp, 4
xchg ebx, eax
xchg ebx, eax
lea edx, [esp + 0x3c]
push edx
jmp 0x10048735
lea eax, [esp + 0x3c]
fstp st(0)
push eax
mov ecx, ebp
call fcn.10009530
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.100067f0
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.100f5016
add esp, 0x90
ret