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

Disassembly:
push 0xffffffffffffffff
push 0x1015e329
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x101b23cc]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101b23cc]
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 bh, bh
mov esi, esi
mov eax, dword [ebx + 0x22c]
cmp eax, ecx
je 0x100482ec
mov dword [ebx + 0x228], 0x102badb0
mov esi, esi
mov dword [ebx + 0x22c], eax
mov ebp, ebp
jmp 0x10048302
lea edx, [ebx + 0x94]
mov dword [ebx + 0x228], edx
mov ch, ch
mov dword [ebx + 0x22c], ecx
mov bl, bl
mov ecx, ecx
mov esi, dword [ebx + 0x90]
push edx
pop edx
fld qword [0x10166500]
fld qword [esp + 0xc4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10048c33
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x10048c33
mov eax, dword [ebx + 0x228]
cmp dword [eax + esi*4], ecx
jne 0x10048355
lea ecx, [esp + 0x3c]
fstp st(0)
push ecx
mov ecx, ebp
call fcn.10009650
jmp 0x10048c41
fld qword [0x101668a0]
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 bh, bh
mov dx, 0xb
fmul qword [0x101668e8]
fnstcw word [esp + 0x1c]
fadd qword [0x10166888]
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 esi, esi
movzx eax, word [ebx + esi*4 + 0x232]
cmp ax, cx
ja 0x100483e3
mov word [ebx + esi*4 + 0x232], cx
mov edx, edx
jmp 0x100483f5
cmp ax, 3
jb 0x100483f5
mov word [ebx + esi*4 + 0x232], 3
mov ebp, ebp
mov cl, cl
push 0x4e21
call fcn.100fbefc
mov ebp, eax
add esp, 4
mov dword [esp + 0x34], ebp
mov ch, ch
test ebp, ebp
jne 0x10048440
lea eax, [esp + 0x3c]
push eax
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.10009650
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10006900
mov eax, esi
jmp 0x10048c5c
mov dword [esp + 0x20], 0
mov bh, bh
push 0xbb80
call fcn.100fbefc
add esp, 4
mov dword [esp + 0x2c], eax
mov ebp, ebp
test eax, eax
jne 0x10048475
push ebp
call fcn.100fbfbf
add esp, 4
mov bh, bh
mov dl, dl
lea ecx, [esp + 0x3c]
push ecx
jmp 0x10048415
push 0x4e21
push 0
push ebp
call fcn.100fcf90
add esp, 0xc
mov cl, cl
mov edx, dword [esp + 0x2c]
push 0xbb80
push 0
push edx
call fcn.100fcf90
add esp, 0xc
mov ecx, ecx
mov ecx, 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.10044110
add esp, 0x24
test eax, eax
jne 0x10048508
mov dl, dl
push ebp
call fcn.100fbfbf
add esp, 4
mov dh, dh
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.100fbfbf
add esp, 4
mov cl, cl
lea edx, [esp + 0x3c]
push edx
jmp 0x10048415
mov esi, dword [ebx + 0x1c]
mov eax, eax
mov ch, ch
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x24], eax
mov ch, ch
mov ecx, ecx
mov esi, esi
test esi, esi
jne 0x1004855c
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call ebp
mov esi, eax
push eax
pop eax
push 0x4f
call ebp
mov edi, eax
mov cl, cl
push 0x4c
call ebp
mov ebx, eax
push eax
pop eax
push 0x4d
call ebp
mov dh, dh
add esi, ebx
mov esi, esi
add edi, eax
mov bl, bl
mov ebp, dword [esp + 0x34]
jmp 0x100485b2
mov eax, eax
lea eax, [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov dh, dh
push esi
call fcn.1003bf10
add esp, 4
mov ecx, ecx
cmp dword [ebx + 0x38], 5
jne 0x10048594
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x10048594
mov esi, dword [ebx + 0x30]
mov ebp, ebp
mov edi, dword [ebx + 0x34]
mov ecx, ecx
jmp 0x100485b2
mov esi, dword [esp + 0x5c]
sub esi, dword [esp + 0x54]
mov ecx, ecx
mov edi, dword [esp + 0x60]
sub edi, dword [esp + 0x58]
mov edi, edi
mov dword [ebx + 0x30], esi
mov edx, edx
mov dword [ebx + 0x34], edi
mov dh, dh
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, esi
cmp dword [esp + 0xb8], esi
jle 0x100485d8
mov dword [esp + 0xb8], esi
mov edx, edx
cmp dword [esp + 0xbc], edi
jle 0x100485e3
mov ah, ah
push 0x1772
call fcn.100fbefc
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov esi, esi
push 0x1772
call fcn.100fbefc
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
mov edx, edx
test edi, edi
je 0x10048c1a
test esi, esi
je 0x10048c05
push 0x1772
push 0
push edi
call fcn.100fcf90
add esp, 0xc
mov edx, edx
push 0x1772
push 0
push esi
call fcn.100fcf90
add esp, 0xc
mov edx, edx
mov dh, dh
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
jle 0x10048b74
jmp 0x10048660
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
mov ebx, ebx
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
xchg ebx, eax
xchg ebx, eax
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]
mov cl, cl
mov esi, esi
push edx
pop edx
push eax
lea ecx, [esp + 0x58]
push 0x101665f0
push ecx
call fcn.100fdd70
add esp, 0xc
push ecx
pop ecx
push esi
lea edx, [esp + 0x78]
push 0x101665f0
push edx
call fcn.100fdd70
add esp, 0xc
mov dl, dl
test edi, edi
jne 0x1004879f
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x54]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10048730
mov ecx, ecx
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 0x10048750
mov ebp, ebp
mov eax, dword [esp + 0x2c]
add eax, 8
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048767
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 0x10048780
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
jmp 0x10048b5f
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 0x10048907
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 0x100488d1
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100487e4
mov cx, word [0x10166508]
mov word [edi], cx
mov ecx, ecx
lea eax, [esp + 0x54]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048800
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 0x10048814
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 ecx
pop ecx
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048835
mov dx, word [0x10166508]
mov word [edi], dx
mov dh, dh
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048851
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 0x10048865
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 0x10048884
mov ax, word [0x101664f0]
mov word [edi], ax
nop
lea eax, [ebx + 8]
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100488a0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100488b2
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 0x10048b5f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100488d6
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100488e8
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
jmp 0x10048b5f
mov edi, dword [esi + 0x88]
add edi, ecx
add edi, eax
cmp edx, edi
jle 0x10048a11
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048920
mov cx, word [0x10166508]
mov word [edi], cx
mov esi, esi
lea eax, [esp + 0x54]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048940
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 0x10048954
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 0x10048975
mov dx, word [0x10166508]
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 0x10048991
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 0x100489a5
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 ebx, ebx
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100489c4
mov ax, word [0x101664f0]
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 0x100489e0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100489f2
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
jmp 0x10048b5f
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 0x10048b2e
mov edi, dword [esp + 0x24]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048a40
mov cx, word [0x10166508]
mov word [edi], cx
nop
lea eax, [esp + 0x54]
mov ecx, eax
jmp 0x10048a60
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048a60
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 0x10048a74
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 eax, eax
mov edi, dword [esp + 0x1c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048a95
mov dx, word [0x10166508]
mov word [edi], dx
mov ah, ah
lea eax, [esp + 0x74]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048ab1
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 0x10048ac5
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
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10048ae4
mov ax, word [0x101664f0]
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 0x10048b00
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048b12
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 0x10048b5f
lea eax, [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10048b33
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10048b45
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 eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x10048660
mov esi, dword [esp + 0x24]
cmp byte [esi], 0
je 0x10048bc5
push esi
lea ecx, [esp + 0x40]
call fcn.10009830
mov dl, dl
push 0x101664f0
lea ecx, [esp + 0x40]
call fcn.10009830
mov dl, dl
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.10009830
mov bh, bh
push 0x101664f0
lea ecx, [esp + 0x40]
call fcn.10009830
mov ebp, ebp
push ebp
lea ecx, [esp + 0x40]
call fcn.10009830
mov ecx, ecx
mov ah, ah
push esi
call fcn.100fbfbf
add esp, 4
mov bh, bh
mov edx, dword [esp + 0x1c]
push edx
call fcn.100fbfbf
add esp, 4
mov cl, cl
push ebp
call fcn.100fbfbf
add esp, 4
mov edx, edx
mov eax, dword [esp + 0x2c]
push eax
call fcn.100fbfbf
add esp, 4
xchg ebx, eax
xchg ebx, eax
lea ecx, [esp + 0x3c]
push ecx
jmp 0x10048415
push edi
call fcn.100fbfbf
add esp, 4
mov esi, esi
lea edx, [esp + 0x3c]
push edx
jmp 0x10048415
test esi, esi
je 0x10048c29
push esi
call fcn.100fbfbf
add esp, 4
mov bl, bl
lea edx, [esp + 0x3c]
push edx
jmp 0x10048415
lea eax, [esp + 0x3c]
fstp st(0)
push eax
mov ecx, ebp
call fcn.10009650
mov dword [esp + 0x28], 1
mov byte [esp + 0xa0], 0
lea ecx, [esp + 0x3c]
call fcn.10006900
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.100fc49a
add esp, 0x90
ret