Function at 0x10026c8d
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005ff0a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc0
mov byte [esp + 0x30], cl
push ebx
push esi
push edi
test cl, cl
je 0x100273cc
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0x34], edi
inc ecx
mov dword [esp + 0x14], 0xffffffff
xor ebx, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0xfffffff8
mov dword [esp + 0x10], ebx
jmp 0x10026cef
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x28], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10026ce3
mov byte [esp + 0x2f], bl
lea ecx, [esp + 0x2f]
call fcn.1002558e
mov dword [esp + 0x14], ebx
jmp 0x10026ee3
push 2
lea ecx, [esp + 0x58]
call fcn.1000354d
push ecx
lea eax, [esp + 0x58]
mov dword [esp + 0xd8], ebx
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x20], ebx
push eax
call fcn.10024017
mov eax, dword [esp + 0x60]
add esp, 0xc
mov dword [eax], ebx
mov dword [esp + 0x18], 0x67f8b4df
lea ecx, [esp + 0x68]
push 4
call fcn.1000354d
push ecx
lea eax, [esp + 0x7c]
mov byte [esp + 0xd8], 1
push eax
lea eax, [esp + 0x70]
mov edx, 0x15cb
push eax
mov ecx, 0x7a4b
call fcn.10026010
mov ecx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp eax, ecx
mov ecx, dword [esp + 0x18]
setle dl
cmp edx, 4
sbb eax, eax
neg eax
add ecx, eax
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
mov esi, dword [esp + eax*4 + 0x28]
neg ecx
mov eax, 0x9689
sub eax, ecx
xor ecx, ecx
cmp eax, 0x997
mov eax, dword [esp + 0x54]
setle cl
xor edx, edx
cmp esi, ecx
sete dl
xor ebx, ebx
cmp edx, dword [eax]
mov eax, dword [esp + 0x14]
setle bl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x28]
cmp ebx, eax
setg cl
xor edx, edx
add ecx, 0x4ed3
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x28]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0x18]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge bl
xor ecx, ecx
neg ebx
cmp ebx, eax
setle cl
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov eax, dword [esp + 0x18]
cmp eax, 0x981c
mov eax, dword [esp + 0x68]
setl cl
xor ebx, ebx
imul ecx, ecx, 0xe327
mov byte [esp + 0xd4], bl
mov dword [eax + 4], ecx
lea ecx, [esp + 0x68]
call fcn.100035d0
mov eax, dword [esp + 0x54]
inc dword [eax]
mov eax, dword [eax]
test eax, eax
jle 0x10026d3a
cmp eax, 0x36511f0b
jle 0x10026e55
cmp dword [esp + 0x14], ebx
jne 0x10026e55
mov eax, ebx
jmp 0x10026e58
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x28]
mov ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 0x34f12ce3
setg al
cmp eax, 0xffffffff
mov eax, dword [esp + 0x10]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
cmp dword [esp + eax*4 + 0x28], edx
jg 0x10026e98
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [eax], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x28]
imul eax, edx, 0x72fd
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x54]
or dword [esp + 0xd4], 0xffffffff
call fcn.100035d0
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x10026d0b
mov dword [esp + 0x60], 0x5d6c05ba
mov dword [esp + 0x10], ebx
jmp 0x10026f0e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb8], 0xb4074dd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10026efb
push 0x6c2a
push 0x2300
lea edx, [esp + 0x68]
call fcn.10025019
mov eax, dword [edi]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], 0xb57fd546
mov dword [esp + 0x24], 0xfffffffa
mov dword [esp + 0x2c], 0x25d8bac8
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 5
pop ecx
pop ecx
jg 0x100271e3
mov eax, 0xc6ae49a2
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], 0x6232
cmp dword [esp + 0x10], 0x64eb
jle 0x10026fdd
mov esi, ebx
mov ebx, esi
mov dword [esp + 0x18], 0x3123
xor edi, edi
mov ecx, edi
mov eax, ebx
sar eax, cl
lea ecx, [esp + 0xa0]
cdq
push edx
push eax
call fcn.10001ac4
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10026fab
mov eax, dword [eax]
push eax
call fcn.10046ccf
pop ecx
push 0
push 1
lea ecx, [esp + 0xa8]
call fcn.100038da
inc edi
cmp edi, 0x2c48
jl 0x10026f8c
dec ebx
dec dword [esp + 0x18]
jne 0x10026f8a
inc esi
cmp esi, 0x1ab7
jl 0x10026f80
xor ebx, ebx
mov dword [esp + 0x1c], 0xfffffffc
cmp dword [esp + 0x10], 0x5f1a
jge 0x10026ffa
push str.pwfuyz_dpyh_irtytgjl_jpipewttz_cpaejjs_isw
call fcn.10046ccf
pop ecx
or dword [esp + 0xd4], 0xffffffff
mov dword [esp + 0x20], 0x43d03942
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], 1
ja 0x10027019
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
xor edx, edx
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
sub edx, eax
imul edx, dword [esp + 0x48]
test edx, edx
jne 0x1002703b
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
sub edx, eax
mov eax, dword [esp + 0x48]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
cmp dword [esp + 0x14], ecx
jge 0x10027071
lea ecx, [esp + 0x2e]
mov byte [esp + 0x2e], bl
call fcn.10023b1c
jmp 0x100271c8
mov dword [esp + 0x18], 0xffffffff
cmp dword [esp + 0x4c], ebx
je 0x100271c0
mov dword [esp + 0x10], 7
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], 0x27020778
mov dword [esp + 0x10], 0xfffffff3
jmp 0x100271b3
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 3
cmp dword [esp + 0x24], ebx
jl 0x10027100
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], ebx
jmp 0x100270f3
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x2d]
mov ecx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x1c]
push ecx
mov dword [esp + eax*4 + 0x48], ecx
mov byte [esp + 0x31], bl
call fcn.10023e0b
inc dword [esp + 0x20]
pop ecx
cmp dword [esp + 0x1c], 3
jle 0x100270d0
dec dword [esp + 0x24]
jns 0x100270c2
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
add eax, 0x71fecc2c
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
sub eax, 3
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
jne 0x10027162
cmp dword [esp + 0x1c], ebx
jne 0x10027162
mov ecx, ebx
jmp 0x10027165
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xfffffffb
setge al
xor ecx, ecx
cmp eax, 9
setne cl
xor edx, edx
cmp ecx, 0x889e
setge dl
cmp dword [esp + 0x18], 0xffffffff
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
setle cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
setge dl
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 7
je 0x100270a8
jmp 0x100271c8
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
push ecx
call fcn.10025e51
inc dword [esp + 0x18]
mov eax, 0xc6ae49a2
cmp dword [esp + 0x18], 5
pop ecx
jle 0x10026f5c
push 0x1a0e
lea eax, [esp + 0x38]
xor cl, cl
push 0x3d66
push eax
lea edx, [esp + 0x4c]
call fcn.1002631c
mov edi, dword [esp + 0x40]
add esp, 0xc
mov esi, ebx
mov cl, byte [esi + edi]
mov dl, 0xbd
call fcn.1002e32a
mov byte [esi + edi], al
inc esi
cmp esi, 4
jb 0x10027206
mov dword [esp + 0x10], 0x41e55969
lea ecx, [esp + 0x7c]
mov dword [esp + 0x20], 0xade2167f
or esi, 0xffffffff
mov dword [esp + 0x20], 0x8974b666
mov dword [esp + 0x20], esi
mov dword [esp + 0x20], 0x924c0001
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0x963ba20b
mov dword [esp + 0x20], 0x9f6d4a0d
mov dword [esp + 0x20], 0x14eb4c8f
mov dword [esp + 0x20], esi
mov dword [esp + 0x20], 7
push 3
call fcn.1000354d
mov dword [esp + 0xd4], 4
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x20], 0xc75daa08
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebx
jmp 0x100272a8
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x64], 9
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 1
jl 0x10027298
push ecx
push ebx
push 0x2544
lea eax, [esp + 0x88]
mov ecx, 0x6fa6
push eax
push 0x3763
lea edx, [esp + 0x44]
call fcn.10025aa6
add esp, 0x14
mov dword [esp + 0x10], ebx
jmp 0x100272e6
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x100272da
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.10028373
pop ecx
pop ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0xd4], esi
call fcn.100035d0
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov dword [esp + 0x20], 0x24ff
cmp dword [esp + 0x20], 0x2524
jle 0x100273d9
push 0x468
push 0x2126
push ebx
push 0x200a
call dword [sym.imp.USER32.dll_CreateCaret]
mov esi, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], 0x4fd1
mov edi, ebx
mov ecx, edi
mov dword [esp + 0x38], esi
shl esi, cl
mov ecx, ebx
mov eax, esi
sar eax, cl
lea ecx, [esp + 0x88]
cdq
push edx
push eax
call fcn.10001ac4
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002737a
mov eax, dword [eax]
push eax
call fcn.10046ccf
pop ecx
push 0
push 1
lea ecx, [esp + 0x90]
call fcn.100038da
inc ebx
cmp ebx, 0x2298
jl 0x1002735b
mov esi, dword [esp + 0x18]
inc edi
push 0
pop ebx
cmp edi, 0x2bd6
jl 0x10027353
dec esi
dec dword [esp + 0x34]
mov dword [esp + 0x18], esi
jne 0x10027351
mov esi, dword [esp + 0x24]
inc esi
mov dword [esp + 0x24], esi
cmp esi, 0x5de5
jl 0x10027345
jmp 0x100273d9
cmp byte [edx], 0
je 0x100273d9
push 0
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret