Function at 0x100262f7
Capabilities:
Check os version
Get disk size
Get file system object information
Resolve function by parsing pe exports
Start service

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006c0d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x298
movdqa xmm0, xmmword [0x1000e310]
lea eax, [esp + 0x210]
push ebx
push esi
push edi
push dword [esp + 0xd8]
mov dword [esp + 0x5c], ecx
xor ebx, ebx
push eax
lea eax, [esp + 0x214]
mov dword [esp + 0x18], 0x5d6c05ba
push eax
mov esi, edx
mov dword [esp + 0x20], 0xca8c
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0xac]
push ebx
mov dword [esp + 0x48], esi
movdqu xmmword [esp + 0x21c], xmm0
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
call fcn.100174ce
mov dword [esp + 0x30], 0xf6f6d779
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xfffffff6
push 1
pop edi
jg 0x10026530
or esi, 0xffffffff
mov dword [esp + 0x24], 0x4074dd03
mov dword [esp + 0x20], 0x14a3a6d7
mov dword [esp + 0x1c], 0x32afcb06
cmp dword [esp + 0x24], ebx
je 0x1002649d
mov dword [esp + 0x18], 0x98aa
mov dword [esp + 0x34], 6
mov dword [esp + 0x20], 0x2ba1
mov dword [esp + 0x20], ebx
jmp 0x100263f5
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x258], 0xab1943c6
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x100263e2
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub ecx, 0x7d6c5051
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setge dl
xor ecx, ecx
cmp eax, edx
setne cl
cmp ecx, 0x53b1dab5
jl 0x10026434
cmp dword [esp + 0x24], ebx
je 0x10026438
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
xor edx, edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setle dl
cmp esi, edx
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x258]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp eax, edi
setg cl
sub ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xa0]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x1c]
imul eax, ecx
mov dword [esp + 0x20], eax
jmp 0x1002651d
mov dword [esp + 0x34], 0xa6ae
mov dword [esp + 0x1c], 0xa2db6377
mov dword [esp + 0x1c], esi
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
add edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
cmp eax, edx
setl cl
sub ecx, 4
je 0x10026511
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1002651d
push ebx
push 0x2166
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
jmp 0x1002651d
mov dword [esp + 0x1c], 0xfff8
inc dword [esp + 0x1c]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff6
jle 0x100263a2
mov esi, dword [esp + 0x38]
cmp dword [esp + 0xa0], ebx
je 0x1002655b
push dword [esp + 0xa0]
call fcn.10050f7d
pop ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov eax, dword [0x10d20a20]
test al, 1
jne 0x100265fd
or eax, edi
mov dword [0x10d20a20], eax
push ebx
mov dword [esp + 0x2b0], ebx
push ebx
mov dword [0x10d20a00], ebx
mov dword [0x10d20a04], ebx
call fcn.1001c838
mov dword [0x10d20a00], eax
mov dword [0x10d20a08], ebx
mov dword [0x10d20a10], ebx
mov byte [esp + 0x2ac], 2
mov ecx, 0x10d20a08
mov dword [esp + 0x1c0], eax
lea eax, [esp + 0x1c0]
push eax
push 0x10
push ebx
lea eax, [esp + 0x214]
mov dword [0x10d20a1c], 0x3f800000
push eax
mov dword [0x10d20a0c], ebx
call fcn.1001c610
push 0x1006cb3a
mov dword [0x10d20a14], 7
mov dword [0x10d20a18], 8
call fcn.10050bcb
or dword [esp + 0x2b0], 0xffffffff
pop ecx
imul eax, dword [esp + 0x58], 0x2710
add eax, esi
mov dword [esp + 0xd4], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], 8
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0x20], 0xfffffff7
jmp 0x1002664a
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x30], ebx
cmp dword [esp + 0x28], ebx
jne 0x10026651
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xd
jge 0x1002662c
lea eax, [esp + 0xd4]
push eax
call fcn.100288d8
mov esi, dword [eax]
test esi, esi
je 0x1002680a
mov dword [esp + 0x10], 0xf89b546
mov dword [esp + 0x24], 0xea964a90
mov dword [esp + 0x20], ebx
jmp 0x10026691
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1c8], 0x85f70ad6
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x1002667e
mov dword [esp + 0x10], ebx
jmp 0x100267a7
mov dword [esp + 0x20], 0x52c58fb7
lea ecx, [esp + 0x100]
mov dword [esp + 0x1c], 0x7008b15e
push 4
call fcn.100126dc
mov dword [esp + 0x20], ebx
jmp 0x100266db
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 0xc18ab9c
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x100266c5
mov dword [esp + 0x20], 2
cmp dword [esp + 0x20], ebx
jl 0x10026759
mov dword [esp + 0x28], 0x58bdfadf
mov dword [esp + 0x38], 4
mov dword [esp + 0x38], 0x87d6364d
mov eax, dword [esp + 0x20]
cmp dword [esp + eax*4 + 0x1c8], ebx
jne 0x10026759
mov eax, dword [esp + 0x1d0]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
je 0x10026745
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x1c8]
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
dec dword [esp + 0x20]
jns 0x100266f0
mov dword [esp + 0x24], ebx
jmp 0x10026770
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x1c8], ebx
jne 0x10026777
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jle 0x1002675f
cmp dword [esp + 0x100], 0
je 0x100267a3
push dword [esp + 0x100]
call fcn.10050f7d
pop ecx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x100266a1
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x100267fe
mov dword [esp + 0x20], ebx
jmp 0x100267d9
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xf0], 7
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x100267c6
dec dword [esp + 0xf0]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100267f8
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
dec dword [esp + 0x10]
jns 0x100267c0
mov dword [esp + 0x160], esi
jmp 0x10028520
mov eax, dword [0x10d20a20]
test al, 2
jne 0x100268b2
or eax, 2
mov dword [0x10d20a20], eax
push 3
pop esi
push ebx
mov dword [esp + 0x2b0], esi
push ebx
mov dword [0x10d209e0], ebx
mov dword [0x10d209e4], ebx
call fcn.1001c838
mov dword [0x10d209e0], eax
mov dword [0x10d209e8], ebx
mov dword [0x10d209f0], ebx
mov byte [esp + 0x2ac], 5
mov ecx, 0x10d209e8
mov dword [esp + 0x1b0], eax
lea eax, [esp + 0x1b0]
push eax
push 0x10
push ebx
lea eax, [esp + 0x88]
mov dword [0x10d209fc], 0x3f800000
push eax
mov dword [0x10d209ec], ebx
call fcn.1001c610
push 0x1006cb35
mov dword [0x10d209f4], 7
mov dword [0x10d209f8], 8
call fcn.10050bcb
or dword [esp + 0x2b0], 0xffffffff
pop ecx
jmp 0x100268b5
push 3
pop esi
push 0xfffffffffffffff6
pop eax
mov dword [esp + 0x28], eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0x28], ebx
xorps xmm0, xmm0
mov dword [esp + 0x28], 9
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0x999fb023
mov dword [esp + 0x28], 0x5dae5a6
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xfffffffe
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xdead9bac
mov dword [esp + 0x28], eax
mov eax, 0xfffa
mov dword [esp + 0x28], 0x45ee28fd
mov dword [esp + 0x28], 4
mov dword [esp + 0x1c], 0xffff
dec dword [esp + 0x1c]
movdqu xmmword [esp + 0x184], xmm0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], ebx
push edi
call fcn.100126dc
push edi
lea ecx, [esp + 0x8c]
mov dword [esp + 0x2b0], 6
call fcn.100126dc
mov dword [esp + 0x10], ebx
jmp 0x1002697e
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1002696c
mov dword [esp + 0x10], ebx
jmp 0x100269a0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1002698a
mov dword [esp + 0x18], ebx
jmp 0x10026af0
mov dword [esp + 0x20], 0x29694d2b
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x44], 0xca3691f6
mov edx, dword [esp + 0x24]
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0xedb3
mov eax, dword [esp + 0x20]
setg cl
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [esp + 0x18]
setl cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x28]
jne 0x10026a20
mov ecx, edi
cmp dword [esp + 0x44], ebx
jne 0x10026a22
mov ecx, ebx
xor eax, eax
cmp ecx, 0x8ceef9a8
setne al
xor ecx, ecx
cmp eax, 0x2e26595a
setg cl
add ecx, dword [esp + 0x48]
jne 0x10026a45
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
cmp eax, edi
mov eax, dword [esp + 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xe4]
setg cl
cmp ecx, esi
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x88]
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x44], ebx
jne 0x10026ae1
mov eax, dword [esp + 0x18]
mov ecx, ebx
cmp dword [esp + eax*4 + 0x44], ebx
je 0x10026ae3
mov ecx, edi
mov eax, dword [esp + 0x88]
mov dword [eax], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x100269af
mov dword [esp + 0x18], 0xe
jmp 0x10026c7d
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 0xe
jmp 0x10026c6e
mov dword [esp + 0x10], 0xec31937d
mov dword [esp + 0x1c], 0xfffffffb
cmp dword [esp + 0x10], ebx
jne 0x10026c79
mov dword [esp + 0x10], ebx
jmp 0x10026c60
mov dword [esp + 0x14], 0xb613644c
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x10026c5c
mov dword [esp + 0x30], 5
cmp dword [esp + 0x24], ebx
je 0x10026b81
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
add eax, 0x61f0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x88]
imul edx, dword [eax]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x10]
cmp edx, eax
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp esi, ecx
setle dl
cmp dword [esp + eax*4 + 0x44], edx
jne 0x10026bcb
mov eax, dword [esp + 0x10]
mov edx, ebx
cmp dword [esp + eax*4 + 0x44], ebx
je 0x10026bcd
mov edx, edi
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x44]
cmp edx, eax
setge cl
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], ebx
je 0x10026c39
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x44], ebx
je 0x10026c39
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10026c1a
push ebx
push 0x1286
push 0x2100
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
push 3
pop esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x20], ebx
jl 0x10026c52
mov eax, dword [esp + 0xe4]
or dword [eax], 0xffffffff
dec dword [esp + 0x20]
jns 0x10026c27
jmp 0x10026c52
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10026c4f
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
push 3
pop esi
dec dword [esp + 0x14]
jns 0x10026b55
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x10026b3f
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x18
jl 0x10026b1c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x18
je 0x10026b07
cmp dword [esp + 0x88], 0
je 0x10026cb4
push dword [esp + 0x88]
call fcn.10050f7d
pop ecx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
or dword [esp + 0x2ac], 0xffffffff
cmp dword [esp + 0xe4], 0
je 0x10026ce8
push dword [esp + 0xe4]
call fcn.10050f7d
pop ecx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
lea eax, [esp + 0x58]
push eax
call fcn.1002893a
cmp byte [ebp + 0xc], 0
mov esi, dword [eax]
mov dword [esp + 0x20], esi
jne 0x10026d06
test esi, esi
jne 0x10027540
push edi
lea ecx, [esp + 0xf8]
call fcn.100126dc
mov dword [esp + 0x2ac], 7
lea eax, [esp + 0x24c]
push dword [esp + 0x7c]
movdqa xmm0, xmmword [0x1000e330]
lea ecx, [esp + 0x70]
push eax
lea eax, [esp + 0x244]
mov dword [esp + 0x38], 0x57994279
push eax
push ebx
movdqu xmmword [esp + 0x24c], xmm0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
call fcn.100174ce
mov byte [esp + 0x2ac], 8
lea eax, [esp + 0x22c]
push dword [esp + 0x7c]
movdqa xmm0, xmmword [0x1000e340]
lea ecx, [esp + 0x98]
push eax
lea eax, [esp + 0x224]
mov dword [esp + 0x1c], 8
push eax
push ebx
movdqu xmmword [esp + 0x22c], xmm0
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
call fcn.100174ce
mov byte [esp + 0x2ac], 9
lea eax, [esp + 0x23c]
push dword [esp + 0x7c]
movdqa xmm0, xmmword [0x1000e380]
lea ecx, [esp + 0xb0]
push eax
lea eax, [esp + 0x234]
mov dword [esp + 0x30], ebx
push eax
push ebx
movdqu xmmword [esp + 0x23c], xmm0
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
call fcn.100174ce
mov byte [esp + 0x2ac], 0xa
mov dword [esp + 0x10], ebx
jmp 0x10026e35
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 0xd509978f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10026e1f
push 3
mov dword [esp + 0x14], ebx
pop esi
jmp 0x10026e53
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x264], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10026e44
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10026e6a
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0xf4]
cmp dword [eax], ebx
je 0x10026f74
mov dword [esp + 0x14], 0xd58e
xor edx, edx
mov dword [esp + 0x1c], 0x9116971d
mov dword [esp + 0x1c], 0x63f3734b
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0xc334
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
add eax, ecx
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
cmp eax, 4
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf4]
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov eax, dword [esp + 0x94]
mov dword [eax], ebx
mov eax, dword [esp + 0x14]
cmp eax, edi
setge cl
cmp dword [esp + 0x268], ecx
jne 0x10026f4c
mov eax, dword [esp + 0xf4]
mov edx, edi
cmp dword [eax], ebx
jne 0x10026f4e
mov edx, ebx
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov esi, dword [esp + 0x94]
cmp eax, edx
mov eax, 0x9db2213a
setle cl
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [esp + 0x1c], eax
jmp 0x100271b2
push esi
lea ecx, [esp + 0x158]
call fcn.100126dc
push 4
lea ecx, [esp + 0x128]
mov byte [esp + 0x2b0], 0xb
call fcn.100126dc
mov byte [esp + 0x2ac], 0xc
lea ecx, [esp + 0x13c]
mov dword [esp + 0x34], 0x21526695
push 4
call fcn.100126dc
mov dword [esp + 0x18], ebx
jmp 0x10026fcd
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10026fbb
mov dword [esp + 0x18], ebx
jmp 0x10026feb
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x124]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10026fd9
mov dword [esp + 0x18], ebx
jmp 0x10027008
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x54], 0xaa4aeca2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10026ff8
mov dword [esp + 0x28], 0x1e56
cmp dword [esp + 0x28], 0x6f9
jge 0x100270a7
lea eax, [esp + 0x78]
push eax
push 0x1000dbe8
call fcn.1005030b
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test eax, eax
jle 0x1002709c
mov edi, ebx
mov esi, ebx
test eax, eax
jle 0x10027078
lea eax, [esp + 0xe0]
push eax
push 0x1000dbe8
call fcn.1005030b
cmp dword [esp + 0xe8], 0
pop ecx
pop ecx
jl 0x10027071
or edi, dword [esp + 0xe0]
inc esi
cmp esi, dword [esp + 0x78]
jl 0x1002704c
push edi
push 0x1000dc00
call fcn.10050c2e
mov eax, dword [esp + 0x80]
pop ecx
pop ecx
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jl 0x10027044
xor edi, edi
inc edi
push 0x1000db55
call fcn.10051226
pop ecx
mov dword [esp + 0x18], ebx
jmp 0x100270c3
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], 0xc2786fe9
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x100270ad
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100270dc
push ebx
call dword [sym.imp.GDI32.dll_CreatePalette]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x154]
inc dword [eax]
mov eax, dword [esp + 0x6c]
mov ecx, dword [edx + 8]
mov dword [eax + 0xc], ecx
cmp dword [esp + 0x54], ebx
jne 0x10027100
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp dword [edx + 8], eax
jne 0x1002710d
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x54], ebx
jne 0x10027124
cmp dword [edx + 8], ebx
jne 0x10027124
mov ecx, ebx
cmp dword [esp + 0x30], ebx
je 0x10027126
mov ecx, edi
mov esi, dword [esp + 0x94]
xor eax, eax
cmp dword [edx + 8], ecx
setl al
cmp dword [esp + 0x13c], 0
mov dword [esi + 0xc], eax
je 0x10027164
push dword [esp + 0x13c]
call fcn.10050f7d
pop ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ebx
cmp dword [esp + 0x124], 0
je 0x10027190
push dword [esp + 0x124]
call fcn.10050f7d
pop ecx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
push dword [esp + 0x154]
call fcn.10050f7d
pop ecx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
cmp dword [esp + 0xac], 0
je 0x100271de
push dword [esp + 0xac]
call fcn.10050f7d
pop ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
push esi
call fcn.10050f7d
pop ecx
push dword [esp + 0x6c]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
call fcn.10050f7d
or dword [esp + 0x2b0], 0xffffffff
pop ecx
push dword [esp + 0xf4]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
call fcn.10050f7d
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x284]
pop ecx
mov ecx, dword [esp + 0x58]
push eax
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
call fcn.1001d280
mov esi, eax
lea edi, [esp + 0x188]
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], 0xfffffff6
xor edi, edi
mov dword [esp + 0x14], 0x77cccaea
inc edi
mov dword [esp + 0x10], 6
cmp dword [esp + 0x10], 0xa
jle 0x1002731c
mov dword [esp + 0x24], 0x37d45db3
mov dword [esp + 0x24], ebx
jmp 0x100272a3
mov eax, dword [esp + 0x24]
mov dword [esp + eax*4 + 0xdc], 0xd925
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edi
jl 0x10027290
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x24], ebx
jl 0x100272fb
mov dword [esp + 0x18], ebx
jmp 0x100272c9
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x5c], 0xd9ba07e4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x100272b9
mov dword [esp + 0x5c], ebx
cmp dword [esp + 0x5c], ebx
jl 0x100272f5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + eax*4 + 0xdc]
mov eax, dword [esp + 0x24]
mov dword [esp + eax*4 + 0xdc], ecx
dec dword [esp + 0x5c]
jns 0x100272d9
dec dword [esp + 0x24]
jns 0x100272b3
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10027313
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetMenu]
inc dword [esp + 0x10]
jmp 0x10027277
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
je 0x10027336
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 0xe3d1
setne al
xor ecx, ecx
cmp eax, 0x46c2
setg cl
sub ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x14]
jle 0x1002744c
mov dword [esp + 0x24], 0x6d767c8f
mov dword [esp + 0x1c], 0xfffffff9
mov dword [esp + 0x28], 0xb404
mov dword [esp + 0x18], ebx
jmp 0x10027392
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x68], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10027386
mov eax, dword [esp + 0x68]
xor edx, edx
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setge dl
cmp edx, 0xef5379a1
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xaf66
setge cl
xor eax, eax
cmp ecx, 0xb167
setg al
add eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp eax, ecx
setne dl
xor eax, eax
cmp edx, 8
setg al
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x1c], eax
setge cl
xor eax, eax
cmp ecx, 0xffffffff
setne al
cmp eax, 2
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x2c160ec2
setge cl
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ebx
jmp 0x10027443
mov dword [esp + 0x28], 0xfffd
cmp dword [esp + 0x28], ebx
jne 0x1002746e
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x1a
jle 0x10027431
jmp 0x1002746e
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002746e
push 0x2006
push 0x1aa8
push ebx
push 0x257
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp byte [ebp + 0xc], 0
je 0x1002753c
cmp dword [esp + 0x18c], 0
je 0x1002753c
mov eax, dword [esp + 0x190]
mov dword [esp + 0x10], 0x90ac204e
mov dword [esp + 0x164], eax
mov dword [esp + 0x10], ebx
jmp 0x100274b5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd0], 0xd72b90f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100274a2
mov dword [esp + 0x10], ebx
jmp 0x100274d4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x270], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x100274c1
mov dword [esp + 0x10], 0xffffffe7
jmp 0x100274f5
mov dword [esp + 0x1c], 0xfffffffe
dec dword [esp + 0x1c]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xd
jge 0x100274e5
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xd0]
cmp dword [esp + 0x278], ebx
jne 0x10027518
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [esp + 0x18c]
neg ecx
mov dword [esp + 0x168], eax
sbb ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x28], 0xb101
mov dword [esp + 0x1c], 0x574b6046
mov dword [esp + 0x14], ebx
jmp 0x10027571
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x24c], 0xb06c0e26
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1002755e
mov dword [esp + 0x10], ebx
jmp 0x1002765f
mov dword [esp + 0x1c], 0x92c6eed1
lea ecx, [esp + 0x130]
push 3
call fcn.100126dc
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebx
jmp 0x100275b3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x100275a1
imul ecx, dword [esp + 0x1c], 0xc710
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x28]
setge cl
sub eax, ecx
imul eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
sub edx, eax
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 2
mov dword [esp + 0x254], edx
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x130]
setge dl
mov dword [eax + 4], edx
test edx, edx
jne 0x1002761f
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x10027621
mov edx, edi
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, dword [esp + 0x10]
push dword [esp + 0x130]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
call fcn.10050f7d
mov dword [esp + 0x134], ebx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], ebx
inc dword [esp + 0x14]
pop ecx
cmp dword [esp + 0x10], 4
jg 0x10027581
test esi, esi
jne 0x10027d99
cmp dword [esp + 0x184], esi
jle 0x10027d99
mov dword [esp + 0x34], 0x41651328
lea ecx, [esp + 0x174]
push 4
mov dword [esp + 0x34], 0xfffffffe
pop esi
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], edi
push esi
call fcn.100126dc
mov dword [esp + 0x14], ebx
jmp 0x100276cb
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 0x1f8e388c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100276b5
mov dword [esp + 0x28], 0xdbf12959
mov dword [esp + 0x14], ebx
jmp 0x100276ef
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x3c], 0x72585faf
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100276df
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edx, dword [esp + 0x34]
cmp eax, 0xe2499e68
mov eax, dword [esp + 0x3c]
setne cl
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x3c]
setle dl
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0x1521
setl al
cmp eax, 0xffffffff
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0xf45b6d4f
setne dl
sub edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
neg ecx
je 0x10027777
mov ecx, edi
cmp dword [esp + 0x3c], ebx
jne 0x10027779
mov ecx, ebx
mov eax, dword [esp + 0x34]
imul eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x174]
push eax
inc dword [eax + 0xc]
or dword [esp + 0x2b0], 0xffffffff
call fcn.10050f7d
pop ecx
push 2
lea ecx, [esp + 0xc8]
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], ebx
call fcn.100126dc
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], 0xfffffffc
mov dword [esp + 0x14], ebx
jmp 0x100277ec
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc4]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100277da
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10027818
push 0x11a1
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Polyline]
mov dword [esp + 0x18], ebx
jmp 0x100279c4
mov dword [esp + 0x10], 2
mov dword [esp + 0x1c], 0x1c73b017
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], ebx
jl 0x10027899
mov dword [esp + 0x1c], 0xb283
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
je 0x1002785f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ecx*4], ebx
jne 0x10027899
jmp 0x10027893
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10027876
push ebx
push 0x3f4
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10027893
push 0x1874
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
dec dword [esp + 0x10]
jns 0x1002783b
mov dword [esp + 0x10], ebx
jmp 0x100279b6
mov dword [esp + 0x14], ebx
jmp 0x100278bb
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x10c], 0xecbe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x100278a8
mov eax, dword [esp + 0x10c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
jne 0x100278ea
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax]
sub ecx, dword [eax + 4]
mov eax, ebx
cmp ecx, 0xffffffff
jg 0x100278ec
mov eax, edi
mov edx, dword [esp + 0x10c]
add eax, 0x981c
cmp eax, 0xffffffff
sbb eax, eax
xor ecx, ecx
neg eax
sub edx, eax
mov eax, dword [esp + 0x10c]
cmp edx, eax
mov eax, dword [esp + 0x10c]
setne cl
xor edx, edx
cmp ecx, 0xa00b
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc4]
setle cl
imul ecx, ecx, 0xbd53
sub ecx, dword [eax]
je 0x10027940
mov eax, dword [esp + 0x110]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10c]
mov eax, dword [esp + 0x110]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
jmp 0x100279ac
mov eax, 0x840c
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x1e8]
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x1c], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100279a8
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edi
jle 0x10027964
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x100278a2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x10027821
cmp dword [esp + 0xc4], 0
je 0x100279fa
push dword [esp + 0xc4]
call fcn.10050f7d
pop ecx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x24], 0x61928c17
mov dword [esp + 0x24], 0x11
jmp 0x10027a31
mov dword [esp + 0x14], esi
mov dword [esp + 0x14], ebx
jmp 0x10027a26
mov dword [esp + 0x1c], 3
inc dword [esp + 0x1c]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xc
jg 0x10027a16
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xffffffe2
jge 0x10027a0c
mov dword [esp + 0x34], 0x41651328
lea ecx, [esp + 0x194]
mov dword [esp + 0x30], 0xfffffffe
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], edi
push esi
call fcn.100126dc
mov dword [esp + 0x14], ebx
jmp 0x10027a81
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x194]
mov dword [eax + ecx*4], 0x1f8e388c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10027a6b
mov dword [esp + 0x28], 0xdbf12959
mov dword [esp + 0x14], ebx
jmp 0x10027aa5
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x40], 0x72585faf
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10027a95
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov edx, dword [esp + 0x34]
cmp eax, 0xe2499e68
mov eax, dword [esp + 0x40]
setne cl
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x40]
setle dl
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0x1521
setl al
cmp eax, 0xffffffff
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0xf45b6d4f
setne dl
sub edx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
neg ecx
je 0x10027b2d
mov ecx, edi
cmp dword [esp + 0x40], ebx
jne 0x10027b2f
mov ecx, ebx
mov eax, dword [esp + 0x34]
imul eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x194]
push eax
inc dword [eax + 0xc]
or dword [esp + 0x2b0], 0xffffffff
call fcn.10050f7d
pop ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
test ecx, ecx
je 0x10027d99
call fcn.100262b7
mov dword [esp + 0x28], 0x25c6
mov esi, eax
cmp dword [esp + 0x28], 0x4c9
mov dword [esp + 0x20], esi
jge 0x10027c8e
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x84]
push eax
push 0x1000e09c
call fcn.1005030b
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x124]
cdq
add esp, 0xc
idiv dword [esp + 0x60]
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1b4]
push eax
push dword [esp + 0x64]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
call fcn.10013755
mov esi, dword [esp + 0x118]
mov edi, ebx
cmp dword [esp + 0x80], edi
jle 0x10027c35
lea eax, [esp + 0x1b8]
push eax
push 0x1000dbe8
call fcn.1005030b
mov eax, dword [esp + 0x1c0]
pop ecx
pop ecx
inc dword [esi + eax*4 - 4]
inc edi
cmp edi, dword [esp + 0x80]
jl 0x10027c0c
mov eax, ebx
mov edx, ebx
cmp dword [esp + 0x60], eax
jle 0x10027c55
mov edi, dword [esp + 0x28]
mov ecx, edi
sub ecx, dword [esi + edx*4]
jns 0x10027c4c
neg ecx
add eax, ecx
inc edx
cmp edx, dword [esp + 0x60]
jl 0x10027c43
cdq
sub eax, edx
sar eax, 1
push eax
push 0x1000df90
call fcn.10050c2e
pop ecx
pop ecx
test esi, esi
je 0x10027c87
push esi
call fcn.10050f7d
pop ecx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
mov esi, dword [esp + 0x20]
xor edi, edi
inc edi
push edi
lea ecx, [esp + 0xbc]
call fcn.100126dc
mov dword [esp + 0x14], 0x42374b1b
mov dword [esp + 0x30], 0xb3e7
mov dword [esp + 0x1c], 0xf23e5250
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0x3847
mov dword [esp + 0x14], ebx
jmp 0x10027cdb
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xb8]
mov dword [eax + ecx*4], 0x70cd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10027cc5
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
je 0x10027d16
mov ecx, dword [esp + 0x14]
mov edx, edi
mov eax, dword [esp + 0xb8]
add ecx, dword [eax]
mov eax, dword [esp + 0x14]
imul eax, ecx
cmp eax, edi
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
jne 0x10027d18
mov edx, ebx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xb8]
add ecx, dword [eax]
add ecx, edx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xb8]
cmp ecx, dword [eax]
setle dl
cmp edx, 0x974edf0e
ja 0x10027d4d
mov eax, edi
cmp dword [esp + 0x30], ebx
jne 0x10027d4f
mov eax, ebx
mov dword [esp + 0x28], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10027d6b
push ebx
push 0x207f
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push dword [esp + 0xb8]
call fcn.10050f7d
pop ecx
lea eax, [esp + 0x58]
mov dword [esp + 0xb8], ebx
push eax
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
call fcn.1002893a
mov dword [eax], esi
lea ecx, [esp + 0x184]
call fcn.100230be
mov dword [esp + 0x28], 0x1c02
cmp dword [esp + 0x28], 0xf64
jge 0x10027fd8
push 0x1065fa4c
push 0x1000df8c
call fcn.1005030b
mov eax, dword [0x1065fa4c]
mov esi, 0x10665820
mov dword [esp + 0x30], ebx
pop ecx
pop ecx
test eax, eax
jle 0x10027dfc
mov edi, esi
push edi
push 0x1000df8c
call fcn.1005030b
mov eax, dword [0x1065fa4c]
inc ebx
pop ecx
add edi, 4
pop ecx
cmp ebx, eax
jl 0x10027de0
xor ebx, ebx
lea edx, [eax*4 + 0x10665820]
mov byte [esp + 0x1c4], bl
push dword [esp + 0x1c4]
mov eax, edx
mov ecx, esi
sub eax, esi
sar eax, 2
push eax
call fcn.100294b4
mov eax, dword [0x1065fa4c]
pop ecx
pop ecx
test eax, eax
jle 0x10027e7d
xor edi, edi
inc edi
jmp 0x10027e35
mov eax, dword [0x1065fa4c]
mov ebx, edi
cmp edi, eax
jge 0x10027e6a
mov eax, dword [ebx*4 + 0x10665820]
mov ecx, 0x10d208c4
sub eax, dword [esi]
mov dword [esp + 0x180], eax
lea eax, [esp + 0x180]
push eax
call fcn.1001ba46
mov ecx, dword [0x1065fa4c]
inc ebx
cmp ebx, ecx
jl 0x10027e3b
jmp 0x10027e70
mov ecx, dword [0x1065fa4c]
inc edi
add esi, 4
lea eax, [edi - 1]
cmp eax, ecx
jl 0x10027e30
xor ebx, ebx
mov ecx, dword [0x10d208c8]
mov edx, ebx
mov esi, dword [0x10d208c4]
sub ecx, esi
sar ecx, 2
test ecx, ecx
je 0x10027ea3
mov eax, dword [esi + edx*4]
inc dword [eax*4 + 0x1065fa50]
inc edx
cmp edx, ecx
jb 0x10027e94
mov ecx, 0x1065fa54
mov eax, dword [ecx - 4]
add dword [ecx], eax
add ecx, 4
cmp ecx, 0x1066581c
jle 0x10027ea8
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0x28], xmm0
inc esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov eax, dword [esi*4 + 0x1065fa50]
mov ebx, 0x1065fa50
xor edi, edi
inc edi
sub eax, dword [ebx + esi*4 - 4]
cdq
mov ecx, eax
mov dword [esp + 0x28], edx
lea eax, [esi*4 + 0x1065fa54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
push dword [esp + 0x28]
mov eax, dword [edi*4 + 0x1065fa50]
sub eax, dword [ebx + edi*4 - 4]
cdq
push ecx
push edx
push eax
call fcn.10056300
mov ecx, eax
mov dword [esp + 0x24], eax
or ecx, edx
mov dword [esp + 0x14], edx
je 0x10027f51
lea ecx, [edi + esi]
cmp ecx, 0xa7
jge 0x10027f51
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x14]
mov eax, dword [0x1066581c]
push dword [esp + 0x28]
sub eax, dword [ecx]
cdq
push edx
push eax
call fcn.10056300
add dword [esp + 0x34], eax
adc dword [esp + 0x30], edx
add dword [esp + 0x1c], 4
inc edi
mov ecx, dword [esp + 0x10]
cmp edi, 0xa7
jl 0x10027efd
inc esi
cmp esi, 0xa7
jl 0x10027ed4
mov ecx, dword [0x1065fa4c]
lea eax, [ecx - 1]
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push esi
push edi
call fcn.10056300
push esi
push edi
push edx
push eax
call fcn.10056300
mov ecx, dword [esp + 0x34]
mov esi, edx
mov edx, dword [esp + 0x30]
mov edi, eax
call fcn.1006b61f
mov edx, esi
movsd qword [esp + 0x28], xmm0
mov ecx, edi
call fcn.1006b58e
movsd xmm1, qword [esp + 0x28]
divsd xmm1, xmm0
push ecx
push ecx
movsd qword [esp], xmm1
push 0x1000e0a8
call fcn.10050c2e
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x1c], ebx
xor edi, edi
mov dword [esp + 0x30], 6
inc edi
mov dword [esp + 0x28], 0xfffffff6
mov dword [esp + 0x14], ebx
jmp 0x10028008
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1bc], 0x31e468a0
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10027ff5
cmp dword [esp + 0x1c], ebx
je 0x10028080
mov dword [esp + 0x14], 0x989d221e
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
inc eax
cmp dword [esp + 0x1c], eax
jle 0x1002805e
mov eax, ebx
cmp dword [esp + 0x30], ebx
je 0x10028060
mov eax, edi
xor ecx, ecx
cmp eax, 0xfffffffa
mov eax, dword [esp + 0x14]
setle cl
xor edx, edx
cmp ecx, eax
setle dl
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x28], edx
jmp 0x100280df
mov dword [esp + 0x28], 0xf9beab1d
mov dword [esp + 0x28], 0x7fc0549e
mov dword [esp + 0x28], 0x2294bb48
mov dword [esp + 0x28], 0x2e819d33
mov dword [esp + 0x1c], 0x7f3c88fe
mov dword [esp + 0x14], ebx
jmp 0x100280c1
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x290], 0xaf066b7a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x100280ae
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100280db
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
inc dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
test esi, esi
je 0x100284ac
push 3
lea ecx, [esp + 0x1a8]
call fcn.100126dc
mov dword [esp + 0x10], ebx
jmp 0x10028112
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd8], 0x13b9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100280ff
mov dword [esp + 0x28], 0x15cb
cmp dword [esp + 0x28], 0xac9
jge 0x100281d0
lea eax, [esp + 0x64]
push eax
push 0x1000df90
call fcn.1005030b
lea eax, [esp + 0x8c]
mov dword [esp + 0x24], ebx
push eax
xor esi, esi
push 0x1000dbe8
inc esi
call fcn.1005030b
add esp, 0x10
dec dword [esp + 0x64]
je 0x100281b9
lea eax, [esp + 0x1a0]
push eax
push 0x1000dbe8
call fcn.1005030b
mov eax, dword [esp + 0x1a8]
pop ecx
pop ecx
cmp eax, dword [esp + 0x84]
jle 0x1002818b
lea esi, [edi + 1]
xor edi, edi
inc edi
jmp 0x10028197
jge 0x10028195
lea edi, [esi + 1]
xor esi, esi
inc esi
jmp 0x10028197
inc edi
inc esi
mov dword [esp + 0x84], eax
cmp edi, ebx
jg 0x100281a6
cmp esi, ebx
jle 0x100281ad
cmp edi, esi
mov ebx, edi
cmovl ebx, esi
dec dword [esp + 0x64]
jne 0x1002815f
mov dword [esp + 0x1c], ebx
xor ebx, ebx
push dword [esp + 0x1c]
push 0x1000df90
call fcn.10050c2e
mov esi, dword [esp + 0x28]
xor edi, edi
pop ecx
pop ecx
inc edi
mov dword [esp + 0x10], ebx
jmp 0x100281ec
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1a4]
mov dword [eax + ecx*4], 0xb18d4081
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100281d6
mov ecx, dword [esp + 0x1a4]
mov dword [ecx], ebx
mov eax, dword [ecx]
inc dword [ecx]
mov dword [esp + eax*4 + 0xd8], 0x4e79
cmp dword [ecx], edi
jl 0x100281fc
push ecx
call fcn.10050f7d
mov edx, dword [esp + 0x3c]
pop ecx
mov ecx, esi
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1ac], ebx
call fcn.100262ed
mov esi, eax
mov dword [esp + 0x18], 0xfff6
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x1f0]
push 3
mov dword [esp + 0x164], esi
call fcn.100126dc
mov dword [esp + 0x2ac], 0x12
mov dword [esp + 0x14], ebx
jmp 0x10028280
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1f0]
mov dword [eax + ecx*4], 0x638299fa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1002826a
mov eax, dword [esp + 0x18]
sub eax, 0xffff
mov dword [esp + 0x10], eax
jne 0x100282b1
mov eax, dword [esp + 0x18]
mov ecx, 0x38dc5336
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
sub ecx, eax
mov ecx, ebx
je 0x100282b3
mov ecx, edi
mov eax, dword [esp + 0x18]
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x18]
setne dl
xor ecx, ecx
cmp eax, edx
setne cl
cmp ecx, dword [esp + 0x18]
jg 0x1002831a
mov dword [esp + 0x18], 0x1b
jmp 0x1002830e
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100282eb
push ebx
call dword [sym.imp.USER32.dll_RegisterClassA]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002830a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x2c
je 0x100282d9
jmp 0x10028489
push edi
lea ecx, [esp + 0x1d8]
call fcn.100126dc
mov byte [esp + 0x2ac], 0x13
mov dword [esp + 0x14], ebx
jmp 0x1002834b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1d4]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10028335
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x1002847d
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ebx
jmp 0x10028383
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x16c], 0xfffffffd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10028370
mov dword [esp + 0x18], ebx
jmp 0x10028441
push 2
lea ecx, [esp + 0x14c]
call fcn.100126dc
mov dword [esp + 0x14], ebx
jmp 0x100283bd
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0xe936be85
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100283a7
mov edi, dword [esp + 0x148]
mov dword [edi + 4], ebx
mov dword [esp + 0x28], 0xbd18
xor edx, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1d4]
cmp dword [eax + ecx*4], 0x4d07
setne dl
xor ecx, ecx
mov dword [esp + 0x16c], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1d4]
mov eax, dword [esp + 0x170]
cmp dword [edx + esi*4], eax
setge cl
inc dword [edi + 4]
cmp dword [edi + 4], 0
mov dword [esp + 0x28], ecx
jle 0x100283ce
push dword [esp + 0x148]
call fcn.10050f7d
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
inc dword [esp + 0x1c]
pop ecx
cmp dword [esp + 0x18], ebx
jle 0x10028393
mov ecx, dword [esp + 0x170]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov ecx, dword [esp + 0x38]
setl dl
push 7
pop eax
cmp eax, edx
sbb eax, eax
inc eax
mov dword [ecx + 4], eax
dec dword [esp + 0x10]
jns 0x1002836a
mov esi, dword [esp + 0x160]
lea ecx, [esp + 0x1d4]
call fcn.10013739
or dword [esp + 0x2ac], 0xffffffff
lea ecx, [esp + 0x1f0]
call fcn.10013739
lea eax, [esp + 0xd4]
push eax
call fcn.100288d8
mov dword [eax], esi
push 3
lea ecx, [esp + 0x200]
call fcn.100126dc
mov dword [esp + 0x14], ebx
jmp 0x100284d6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1fc]
mov dword [eax + ecx*4], 0xae9714a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x100284c0
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100284f5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10028514
push ebx
push 0x9f3
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
lea ecx, [esp + 0x1fc]
call fcn.10013739
mov eax, dword [ebp + 8]
lea esi, [esp + 0x160]
mov ecx, dword [esp + 0x2a4]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret