Function at 0x1002b1ff
Capabilities:
Check os version
Get common file path
Get disk information
Get file system object information
Get session user name
Identify system language via api
Parse pe header
Query service status
Read .ini file

Disassembly:
mov eax, 0x100813e7
call fcn.1007fd98
mov eax, 0x130c
call fcn.1007c7c0
mov dword [ebp - 0x2c], 0xfecafe8
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff8
push ebx
mov dword [ebp - 0x18], 6
push esi
mov dword [ebp - 0x1c], 0x6a9d9e17
xor esi, esi
mov dword [ebp - 0x38], 0x531defce
inc esi
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x40], esi
mov byte [ebp - 0x6d], dl
mov edx, esi
push edi
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x2c], eax
je 0x1002b257
mov edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
add ecx, edx
neg eax
cmp eax, ecx
jne 0x1002b293
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
sub edx, 0x492527ea
cmp edx, eax
setne cl
imul eax, ecx, 0xfff7
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x2c], eax
jle 0x1002b293
xor eax, eax
jmp 0x1002b295
mov eax, esi
mov ecx, 0xa05d7627
mov edi, dword [sym.imp.GDI32.dll_CreatePalette]
cmp ecx, eax
push 0xffffffffffffffef
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
neg ecx
pop ebx
sbb ecx, ecx
xor edx, edx
inc ecx
imul ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
je 0x1002b327
mov dword [ebp - 0x54], 0x55db
mov dword [ebp - 0x1c], 0xfffffff9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002b308
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x1002b30a
mov eax, esi
mov dword [ebp - 0x54], 0xd8eb7bfb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x40], eax
jmp 0x1002b342
mov dword [ebp - 0x24], eax
jmp 0x1002b33d
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002b33a
push eax
call edi
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jne 0x1002b32c
xor eax, eax
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
jmp 0x1002b361
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002b350
mov dword [ebp - 0xd4], 0x1d
jmp 0x1002b385
mov dword [ebp - 0x50], 0xfffffffc
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xd4]
cmp dword [ebp - 0xd4], 0xffffffe6
jg 0x1002b372
mov dword [ebp - 0x2c], 0xfecafe8
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff8
mov edx, esi
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x1c], 0x6a9d9e17
mov dword [ebp - 0x38], 0x531defce
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x40], esi
cmp dword [ebp - 0x2c], eax
je 0x1002b3c6
mov edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
add ecx, edx
neg eax
cmp eax, ecx
jne 0x1002b402
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
sub edx, 0x492527ea
cmp edx, eax
setne cl
imul eax, ecx, 0xfff7
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x2c], eax
jle 0x1002b402
xor eax, eax
jmp 0x1002b404
mov eax, esi
mov ecx, 0xa05d7627
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
imul ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
je 0x1002b48d
mov dword [ebp - 0x54], 0x55db
mov dword [ebp - 0x1c], 0xfffffff9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002b46e
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x1002b470
mov eax, esi
mov dword [ebp - 0x54], 0xd8eb7bfb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x40], eax
jmp 0x1002b4a8
mov dword [ebp - 0x24], eax
jmp 0x1002b4a3
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002b4a0
push eax
call edi
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jne 0x1002b492
mov dword [ebp - 0x2c], 0xfecafe8
lea ecx, [ebp - 0x2d8]
push 2
call fcn.10014d59
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x54], 0xec3203bd
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x1002b4f7
push dword [ebp - 0x14]
lea ecx, [ebp - 0x2d8]
call fcn.10014dc6
mov dword [eax], 0xfff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002b4d8
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002b515
push eax
push eax
push 0x145f
push 0x4f8
push eax
call dword [sym.imp.USER32.dll_InsertMenuW]
xor eax, eax
push eax
lea ecx, [ebp - 0x2d8]
call fcn.10014dc6
xor eax, eax
lea ecx, [ebp - 0x2d8]
push eax
call fcn.10014dc6
mov dword [ebp - 0x54], esi
lea ecx, [ebp - 0x2d8]
push esi
call fcn.10014dc6
mov ecx, dword [ebp - 0x54]
xor ebx, ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x2d8]
setle bl
xor eax, eax
push eax
call fcn.10014dc6
xor ecx, ecx
mov eax, dword [eax]
imul eax, ebx
cmp eax, 0x1f90ef30
setl cl
xor eax, eax
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x2d8]
push eax
call fcn.10014dc6
or ecx, 0xffffffff
xor ebx, ebx
cmp dword [eax], ecx
lea ecx, [ebp - 0x2d8]
setl bl
xor eax, eax
push eax
call fcn.10014dc6
push esi
lea ecx, [ebp - 0x2d8]
mov eax, dword [eax]
imul eax, ebx
xor ebx, ebx
cmp eax, dword [ebp - 0x40]
setl bl
inc ebx
neg ebx
sbb ebx, ebx
inc ebx
call fcn.10014dc6
lea ecx, [ebp - 0x2d8]
mov eax, dword [eax]
add eax, ebx
mov dword [ebp - 0x40], eax
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10014dc1
push 3
pop eax
mov dword [ebp - 0x24], 0xfffffff8
lea ecx, [ebp - 0xc38]
mov dword [ebp - 0x18], 6
push eax
call fcn.10014d59
push 2
pop ebx
push ebx
lea ecx, [ebp - 0xe60]
mov dword [ebp - 4], esi
call fcn.10014d59
mov byte [ebp - 4], bl
xor eax, eax
mov dword [ebp - 0x28], 0xcee61780
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x1002b62a
push dword [ebp - 0x20]
lea ecx, [ebp - 0xc38]
call fcn.10014dc6
push 3
mov dword [eax], 0xae9714a
inc dword [ebp - 0x20]
pop eax
cmp dword [ebp - 0x20], eax
jl 0x1002b609
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x1002b64d
push dword [ebp - 0x20]
lea ecx, [ebp - 0xe60]
call fcn.10014dc6
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1002b632
xor eax, eax
push 3
mov dword [ebp - 0x20], eax
pop ecx
cmp dword [ebp - 0x20], ecx
jge 0x1002b670
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x970], 0xfffffff8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1002b658
xor eax, eax
inc dword [ebp - 0x968]
mov dword [ebp - 0x28], 0xfffffffc
jmp 0x1002b6ac
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], eax
jmp 0x1002b69c
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002b699
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1002b687
cmp dword [ebp - 0x968], eax
jne 0x1002b6b2
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffe6
jg 0x1002b67f
lea ecx, [ebp - 0xe60]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0xc38]
mov dword [ebp - 4], eax
call fcn.10014dc1
mov dword [ebp - 0x1c], 0x6a9d9e17
lea ecx, [ebp - 0x224]
push esi
call fcn.10014d59
push 3
pop eax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0xe00]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], 0x213ec752
push 4
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x1002b72a
push dword [ebp - 0x24]
lea ecx, [ebp - 0x224]
call fcn.10014dc6
mov dword [eax], 0xb0f7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x1002b70c
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x1002b752
push dword [ebp - 0x24]
lea ecx, [ebp - 0xe00]
call fcn.10014dc6
mov dword [eax], 0xdc02
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x1002b733
xor eax, eax
push eax
lea ecx, [ebp - 0x224]
call fcn.10014dc6
xor ecx, ecx
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0x66bb
mov eax, 0xffff
setne cl
cmp ecx, eax
ja 0x1002b792
xor eax, eax
lea ecx, [ebp - 0x224]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002b792
xor eax, eax
mov ecx, eax
jmp 0x1002b794
mov ecx, esi
xor eax, eax
cmp ecx, esi
lea ecx, [ebp - 0x224]
setle al
imul eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x1c]
xor ebx, ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x224]
setge bl
xor eax, eax
push eax
call fcn.10014dc6
cmp ebx, dword [eax]
jg 0x1002b7e9
xor eax, eax
lea ecx, [ebp - 0x224]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002b7e9
xor eax, eax
mov esi, eax
jmp 0x1002b7eb
xor eax, eax
push eax
lea ecx, [ebp - 0x224]
call fcn.10014dc6
xor ebx, ebx
lea ecx, [ebp - 0x224]
cmp esi, dword [eax]
sete bl
xor eax, eax
push eax
call fcn.10014dc6
push 0
lea ecx, [ebp - 0x224]
cmp ebx, dword [eax]
pop ebx
setne bl
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x3c]
sub ebx, ecx
xor ecx, ecx
cmp dword [eax], ebx
setge cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0xe00]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0x224]
mov dword [ebp - 4], eax
call fcn.10014dc1
mov dword [ebp - 0x38], 0x531defce
xor eax, eax
mov dword [ebp - 0x24], 0xad3b3152
mov dword [ebp - 0x54], 0x40c18ab9
mov dword [ebp - 0x54], 0x3a4d1b40
mov dword [ebp - 0x40], 0xd214
push 3
mov dword [ebp - 0x14], eax
pop ecx
cmp dword [ebp - 0x14], ecx
jge 0x1002b895
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x178], 0x5f70ad6f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1002b87d
xor eax, eax
mov dword [ebp - 0x178], eax
jmp 0x1002b8b5
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002b8af
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
inc dword [ebp - 0x178]
cmp dword [ebp - 0x178], 0xf
je 0x1002b89d
mov dword [ebp - 0x24], 2
cmp dword [ebp - 0x24], eax
jl 0x1002b9b1
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x728]
call fcn.10014d59
xor eax, eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x14], eax
jmp 0x1002b8fc
push dword [ebp - 0x14]
call fcn.10014dc6
mov dword [eax], 0xcc4b7c70
inc dword [ebp - 0x14]
lea ecx, [ebp - 0x728]
cmp dword [ebp - 0x14], ebx
jl 0x1002b8eb
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x178]
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp + eax*4 - 0x178]
xor eax, eax
push eax
call fcn.10014dc6
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x178]
cmp esi, eax
mov eax, dword [ebp - 0x24]
setl cl
cmp ecx, dword [ebp + eax*4 - 0x178]
jle 0x1002b950
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1002b952
mov ecx, ebx
jmp 0x1002b954
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x178]
imul eax, ecx
lea ecx, [ebp - 0x728]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], 0x8787d636
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x178]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x40], eax
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x24]
mov dword [eax], ecx
or eax, 0xffffffff
lea ecx, [ebp - 0x728]
mov dword [ebp - 4], eax
call fcn.10014dc1
dec dword [ebp - 0x24]
jns 0x1002b8d1
xor esi, esi
mov dword [ebp - 0x34], 0xfffffff7
inc esi
mov dword [ebp - 0x3c], 0xd69f4288
push esi
lea ecx, [ebp - 0x3fc]
call fcn.10014d59
mov dword [ebp - 4], 6
push 8
pop eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x54], 0x2715ee56
mov dword [ebp - 0x40], 0xce3044b1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x1002ba17
push dword [ebp - 0x20]
lea ecx, [ebp - 0x3fc]
call fcn.10014dc6
mov dword [eax], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1002b9fd
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1002ba39
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4a8], 7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1002ba20
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x1002ba4f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x3cc], 0xd345464c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1002ba3e
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
test eax, eax
je 0x1002bacd
xor eax, eax
cmp dword [ebp - 0x4c], eax
jne 0x1002ba9b
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x3fc]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
xor eax, eax
push eax
call fcn.10014dc6
xor eax, eax
lea ecx, [ebp - 0x3fc]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002ba9b
xor eax, eax
mov esi, eax
jmp 0x1002ba9d
xor eax, eax
push eax
lea ecx, [ebp - 0x3fc]
call fcn.10014dc6
cmp esi, dword [eax]
je 0x1002bab0
mov eax, dword [ebp - 0x1c]
xor eax, eax
lea ecx, [ebp - 0x3fc]
push eax
call fcn.10014dc6
mov eax, dword [ebp - 0x4a8]
xor esi, esi
mov eax, dword [ebp - 0x4a8]
inc esi
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x1002baec
push eax
push 0xaff
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov eax, dword [ebp - 0x3cc]
xor edx, edx
cmp eax, 0xc3bc
mov eax, dword [ebp - 0x4a4]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x3cc]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x3fc]
setl dl
xor ebx, ebx
cmp edx, eax
sete bl
xor eax, eax
push eax
call fcn.10014dc6
mov dword [eax], ebx
xor eax, eax
test ebx, ebx
je 0x1002bb40
cmp dword [ebp - 0x4a8], eax
je 0x1002bb40
mov eax, esi
cmp eax, dword [ebp - 0x4c]
je 0x1002bb4c
xor eax, eax
cmp dword [ebp - 0x3c], eax
je 0x1002bb4e
mov eax, esi
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x3fc]
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10014dc1
xor eax, eax
mov dword [ebp - 0x40], esi
mov edx, esi
cmp dword [ebp - 0x2c], eax
je 0x1002bb70
mov edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
add ecx, edx
neg eax
cmp eax, ecx
jne 0x1002bbac
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
sub edx, 0x492527ea
cmp edx, eax
setne cl
imul eax, ecx, 0xfff7
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x2c], eax
jle 0x1002bbac
xor eax, eax
jmp 0x1002bbae
mov eax, esi
mov ecx, 0xa05d7627
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
imul ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, 0x2d5e48d3
cmp dword [ebp - 0x1c], eax
je 0x1002bcac
mov dword [ebp - 0x54], 0x55db
mov dword [ebp - 0x890], ecx
mov dword [ebp - 0x88c], ecx
mov dword [ebp - 0x888], ecx
mov dword [ebp - 0x884], ecx
mov dword [ebp - 0x24], 0x52061f6
push 3
mov dword [ebp - 0x24], eax
pop edx
cmp dword [ebp - 0x24], edx
jg 0x1002bc41
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x890]
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x890], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jle 0x1002bc23
xor eax, eax
push 2
mov dword [ebp - 0x24], eax
pop ebx
jmp 0x1002bc5e
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002bc5b
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x1002bc49
mov dword [ebp - 0x1c], 0xfffffff9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002bc8b
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x1002bc8d
mov eax, esi
mov dword [ebp - 0x54], 0xd8eb7bfb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x40], eax
xor eax, eax
jmp 0x1002bd1b
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffef
je 0x1002bd18
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
jmp 0x1002bcd2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002bcc1
mov dword [ebp - 0xe4], 0x1d
jmp 0x1002bcf6
mov dword [ebp - 0x50], 0xfffffffc
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xe4]
cmp dword [ebp - 0xe4], 0xffffffe6
jg 0x1002bce3
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x1002bd0c
push eax
call edi
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffef
push 0
pop eax
jne 0x1002bcb5
push 2
pop ebx
mov edi, dword [sym.imp.GDI32.dll_CreateHalftonePalette]
or ecx, 0xffffffff
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x54], 4
mov dword [ebp - 0x40], 0x622cfb64
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002bd51
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
dec dword [ebp - 0x20]
je 0x1002be28
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
sub edx, 0x3c2f893b
je 0x1002bd7a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
add eax, 0xc2c7a1ee
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
add eax, 0xfffffffc
je 0x1002bda6
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x20]
jl 0x1002bdbf
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1002bdc1
mov edx, esi
jmp 0x1002bdc3
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setl cl
xor edx, edx
cmp ecx, eax
setl dl
sub edx, dword [ebp - 0x24]
shl edx, 2
test edx, edx
jne 0x1002bdea
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x1002bdec
mov ecx, esi
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp eax, dword [ebp - 0x24]
je 0x1002be02
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002be04
mov ecx, esi
jmp 0x1002be06
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x54], eax
add ecx, 0x5601
mov eax, dword [ebp - 0x54]
cmp eax, ecx
setl dl
imul edx, dword [ebp - 0x24]
test edx, edx
je 0x1002be28
mov eax, esi
jmp 0x1002be2a
xor eax, eax
push 3
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0xec0]
pop eax
push eax
call fcn.10014d59
push ebx
lea ecx, [ebp - 0xc50]
mov dword [ebp - 4], 7
call fcn.10014d59
mov byte [ebp - 4], 8
xor eax, eax
mov dword [ebp - 0x28], 0xcee61780
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x1002be8c
push 3
pop edi
push dword [ebp - 0x20]
lea ecx, [ebp - 0xec0]
call fcn.10014dc6
mov dword [eax], 0xae9714a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x1002be68
mov edi, dword [sym.imp.GDI32.dll_CreateHalftonePalette]
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x1002beaf
push dword [ebp - 0x20]
lea ecx, [ebp - 0xc50]
call fcn.10014dc6
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1002be94
xor eax, eax
push 3
mov dword [ebp - 0x20], eax
pop ecx
cmp dword [ebp - 0x20], ecx
jge 0x1002bed2
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x97c], 0xfffffff8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1002beba
xor eax, eax
inc dword [ebp - 0x974]
mov dword [ebp - 0x28], 0xfffffffc
jmp 0x1002bf0e
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], eax
jmp 0x1002befe
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002befb
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1002bee9
cmp dword [ebp - 0x974], eax
jne 0x1002bf14
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffe6
jg 0x1002bee1
lea ecx, [ebp - 0xc50]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0xec0]
mov dword [ebp - 4], eax
call fcn.10014dc1
mov dword [ebp - 0x28], 0xfecafe8
lea ecx, [ebp - 0x284]
push esi
call fcn.10014d59
mov dword [ebp - 4], 9
lea ecx, [ebp - 0xc68]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], 0x213ec752
push 4
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x1002bf8d
push dword [ebp - 0x24]
lea ecx, [ebp - 0x284]
call fcn.10014dc6
mov dword [eax], 0xb0f7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x1002bf6f
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x1002bfb5
push dword [ebp - 0x24]
lea ecx, [ebp - 0xc68]
call fcn.10014dc6
mov dword [eax], 0xdc02
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x1002bf96
xor eax, eax
push eax
lea ecx, [ebp - 0x284]
call fcn.10014dc6
xor ecx, ecx
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0x66bb
mov eax, 0xffff
setne cl
cmp ecx, eax
ja 0x1002bff5
xor eax, eax
lea ecx, [ebp - 0x284]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002bff5
xor eax, eax
mov ecx, eax
jmp 0x1002bff7
mov ecx, esi
xor eax, eax
cmp ecx, esi
lea ecx, [ebp - 0x284]
setle al
imul eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x1c]
xor ebx, ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x284]
setge bl
xor eax, eax
push eax
call fcn.10014dc6
cmp ebx, dword [eax]
jg 0x1002c04c
xor eax, eax
lea ecx, [ebp - 0x284]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002c04c
xor eax, eax
mov esi, eax
jmp 0x1002c04e
xor eax, eax
push eax
lea ecx, [ebp - 0x284]
call fcn.10014dc6
xor ebx, ebx
lea ecx, [ebp - 0x284]
cmp esi, dword [eax]
sete bl
xor eax, eax
push eax
call fcn.10014dc6
push 0
lea ecx, [ebp - 0x284]
cmp ebx, dword [eax]
pop ebx
setne bl
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x3c]
sub ebx, ecx
xor ecx, ecx
cmp dword [eax], ebx
setge cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0xc68]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0x284]
mov dword [ebp - 4], eax
call fcn.10014dc1
mov dword [ebp - 0x18], 0xfffffff8
xor eax, eax
mov dword [ebp - 0x24], 0xad3b3152
mov dword [ebp - 0x54], 0x40c18ab9
mov dword [ebp - 0x54], 0x3a4d1b40
mov dword [ebp - 0x40], 0xd214
push 3
mov dword [ebp - 0x14], eax
pop ecx
cmp dword [ebp - 0x14], ecx
jge 0x1002c0f8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x190], 0x5f70ad6f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1002c0e0
xor eax, eax
mov dword [ebp - 0x190], eax
jmp 0x1002c118
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002c112
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
inc dword [ebp - 0x190]
cmp dword [ebp - 0x190], 0xf
je 0x1002c100
xor ebx, ebx
mov dword [ebp - 0x24], 2
inc ebx
cmp dword [ebp - 0x24], eax
jl 0x1002c21a
or edi, 0xffffffff
push ebx
lea ecx, [ebp - 0x7dc]
call fcn.10014d59
xor eax, eax
mov dword [ebp - 4], 0xb
mov dword [ebp - 0x14], eax
jmp 0x1002c162
push dword [ebp - 0x14]
call fcn.10014dc6
mov dword [eax], 0xcc4b7c70
inc dword [ebp - 0x14]
lea ecx, [ebp - 0x7dc]
cmp dword [ebp - 0x14], ebx
jl 0x1002c151
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x190]
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp + eax*4 - 0x190]
xor eax, eax
push eax
call fcn.10014dc6
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x190]
cmp esi, eax
mov eax, dword [ebp - 0x24]
setl cl
cmp ecx, dword [ebp + eax*4 - 0x190]
jle 0x1002c1b6
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1002c1b8
mov ecx, ebx
jmp 0x1002c1ba
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x190]
imul eax, ecx
lea ecx, [ebp - 0x7dc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], 0x8787d636
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x190]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x40], eax
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], edi
mov dword [eax], ecx
lea ecx, [ebp - 0x7dc]
call fcn.10014dc1
dec dword [ebp - 0x24]
jns 0x1002c137
mov edi, dword [sym.imp.GDI32.dll_CreateHalftonePalette]
mov dword [ebp - 0x2c], 6
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x1c], 0x6a9d9e17
mov dword [ebp - 0x3c], 0xd69f4288
push ebx
call fcn.10014d59
mov dword [ebp - 4], 0xc
push 8
pop eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x54], 0x2715ee56
mov dword [ebp - 0x40], 0xce3044b1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x1002c284
push dword [ebp - 0x20]
lea ecx, [ebp - 0x450]
call fcn.10014dc6
mov dword [eax], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1002c26a
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1002c2a6
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4c0], 7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1002c28d
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x1002c2bc
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x3a0], 0xd345464c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1002c2ab
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
test eax, eax
je 0x1002c339
xor eax, eax
cmp dword [ebp - 0x4c], eax
jne 0x1002c308
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x450]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
xor eax, eax
push eax
call fcn.10014dc6
xor eax, eax
lea ecx, [ebp - 0x450]
push eax
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002c308
xor eax, eax
mov esi, eax
jmp 0x1002c30c
mov esi, ebx
xor eax, eax
push eax
lea ecx, [ebp - 0x450]
call fcn.10014dc6
cmp esi, dword [eax]
je 0x1002c31f
mov eax, dword [ebp - 0x1c]
xor eax, eax
lea ecx, [ebp - 0x450]
push eax
call fcn.10014dc6
mov eax, dword [ebp - 0x4c0]
mov eax, dword [ebp - 0x4c0]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x1002c358
push eax
push 0xaff
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov eax, dword [ebp - 0x3a0]
xor ecx, ecx
cmp eax, 0xc3bc
mov eax, dword [ebp - 0x4bc]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x3a0]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setl cl
xor ebx, ebx
cmp ecx, eax
lea ecx, [ebp - 0x450]
sete bl
xor eax, eax
push eax
call fcn.10014dc6
mov dword [eax], ebx
xor eax, eax
test ebx, ebx
je 0x1002c3b1
cmp dword [ebp - 0x4c0], eax
je 0x1002c3b1
xor ebx, ebx
inc ebx
mov eax, ebx
jmp 0x1002c3b4
xor ebx, ebx
inc ebx
cmp eax, dword [ebp - 0x4c]
je 0x1002c3c0
xor eax, eax
cmp dword [ebp - 0x3c], eax
je 0x1002c3c2
mov eax, ebx
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x450]
or esi, 0xffffffff
mov dword [ebp - 4], esi
call fcn.10014dc1
mov dword [ebp - 0x38], 0x531defce
mov eax, 0x2d5e48d3
mov dword [ebp - 0x8b0], eax
mov dword [ebp - 0x8ac], eax
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x8a4], eax
xor eax, eax
mov dword [ebp - 0x24], 0x52061f6
push 3
mov dword [ebp - 0x24], eax
pop edx
cmp dword [ebp - 0x24], edx
jg 0x1002c42c
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x8b0]
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x8b0], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jle 0x1002c40e
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x1002c446
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002c443
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x1002c431
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
jmp 0x1002c470
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002c45f
mov dword [ebp - 0xf4], 0x1d
jmp 0x1002c494
mov dword [ebp - 0x50], 0xfffffffc
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xf4]
cmp dword [ebp - 0xf4], 0xffffffe6
jg 0x1002c481
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x34], 0x6ec7e434
mov dword [ebp - 0x54], 0x6ff609d7
cmp dword [ebp - 0x1c], 0x457102d1
push 0xfffffffffffffffb
pop eax
jg 0x1002c528
mov dword [ebp - 0x18], eax
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 0xea0c
setge cl
xor eax, eax
cmp ecx, esi
setle al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x54]
xor eax, eax
cmp dword [ebp - 0x18], eax
mov ecx, eax
mov eax, dword [ebp - 0x18]
imul eax, ecx
cmp eax, dword [ebp - 0x18]
je 0x1002c4fd
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x1002c4ff
mov eax, ebx
mov dword [ebp - 0x1c], 0xeaa2
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], eax
jl 0x1002c51a
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x1002c521
jmp 0x1002c51c
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x1002c523
mov eax, ebx
mov dword [ebp - 0x54], eax
jmp 0x1002c538
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x1002c53a
call dword [sym.imp.KERNEL32.dll_GetVersion]
xor eax, eax
mov edx, ebx
cmp dword [ebp - 0x28], eax
je 0x1002c543
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, edx
neg eax
cmp eax, ecx
jne 0x1002c57f
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
sub edx, 0x492527ea
cmp edx, eax
setne cl
imul eax, ecx, 0xfff7
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], eax
jle 0x1002c57f
xor eax, eax
jmp 0x1002c581
mov eax, ebx
mov ecx, 0xa05d7627
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
imul ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
je 0x1002cb66
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x1002c5e2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0x24a8c6a5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002c5cc
xor eax, eax
mov dword [ebp - 0x6c], 0xf
jmp 0x1002c64d
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x6c], eax
je 0x1002c60b
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
setl dl
cmp dword [ebp - 0x18], edx
jle 0x1002c609
mov eax, ebx
jmp 0x1002c60b
xor eax, eax
xor edx, edx
cmp eax, 0xfffffff7
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
push 7
setne cl
pop eax
sub eax, ecx
add eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x68], esi
jge 0x1002c640
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
push 0
mov dword [ebp - 0x28], 0x9150faeb
dec dword [ebp - 0x6c]
pop eax
cmp dword [ebp - 0x6c], 8
jle 0x1002c5eb
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x6c]
neg eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x6c]
setg cl
sub eax, ecx
je 0x1002c6da
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x6c]
neg eax
push 0xfffffffffffffffb
sbb eax, eax
sub ecx, 0x8859
neg eax
add ecx, eax
mov eax, dword [ebp - 0x6c]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
mov eax, dword [ebp - 0x68]
add eax, 0xfffffffa
add eax, ecx
mov ecx, dword [ebp - 0x68]
add ecx, eax
pop eax
cmp eax, ecx
mov ecx, dword [ebp - 0x6c]
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax
mov eax, dword [ebp - 0x68]
cmp ecx, eax
mov eax, dword [ebp - 0x6c]
setg dl
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, 0x830ae734
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x68]
jge 0x1002c6da
mov edx, ebx
jmp 0x1002c6de
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x68]
xor ecx, ecx
movdqa xmm0, xmmword [0x100081f0]
cmp edx, eax
mov eax, dword [ebp - 0x28]
sete cl
xor edx, edx
cmp ecx, ebx
movdqu xmmword [ebp - 0xedc], xmm0
setge dl
xor ecx, ecx
cmp edx, eax
lea eax, [ebp - 0xecc]
push eax
setle cl
lea eax, [ebp - 0xedc]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x1178]
mov dword [ebp - 0x54], 0x55db
mov dword [ebp - 0x18], 0xc7a0
push eax
call fcn.10014dd5
lea ecx, [ebp - 0x1d9]
mov esi, eax
call fcn.10009543
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x200]
push dword [esi]
call fcn.10014d9b
push 2
mov dword [ebp - 4], 0xd
lea ecx, [ebp - 0x4fc]
pop esi
mov dword [ebp - 0x34], 0xcee61780
mov dword [ebp - 0x3c], 0x11521faf
mov dword [ebp - 0x54], ebx
push esi
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x1002c7a3
push dword [ebp - 0x14]
lea ecx, [ebp - 0x4fc]
call fcn.10014dc6
mov dword [eax], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002c789
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x1002c81a
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x1002c7cb
push esi
lea ecx, [ebp - 0x200]
call fcn.10014dc6
cmp dword [eax], 0
je 0x1002c7c9
mov esi, ebx
xor eax, eax
jmp 0x1002c7cd
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x200]
call fcn.10014dc6
mov dword [eax], esi
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x54], ebx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 0x13c9534c
sete al
cmp eax, dword [ebp - 0x54]
jge 0x1002c801
mov eax, dword [ebp - 0x18]
xor eax, eax
lea ecx, [ebp - 0x200]
push eax
call fcn.10014dc6
cmp dword [eax], 0
je 0x1002c818
mov edi, ebx
jmp 0x1002c81c
xor eax, eax
mov edi, eax
push ebx
lea ecx, [ebp - 0x4fc]
call fcn.10014dc6
mov ecx, dword [ebp - 0x34]
xor edx, edx
cmp edi, ecx
mov esi, eax
mov eax, dword [ebp - 0x18]
sete dl
sub edx, 0xf2c6
neg edx
push ebx
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
setl cl
mov dword [esi], ecx
lea ecx, [ebp - 0x4fc]
call fcn.10014dc6
cmp dword [eax], 0
je 0x1002c967
movdqa xmm0, xmmword [0x100082a0]
lea eax, [ebp - 0xefc]
push eax
lea eax, [ebp - 0xf0c]
push eax
lea ecx, [ebp - 0x11d8]
movdqu xmmword [ebp - 0xf0c], xmm0
call fcn.10014dd5
lea ecx, [ebp - 0x1d4]
mov esi, eax
call fcn.10009543
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x6c4]
push dword [esi]
call fcn.10014d9b
push 3
pop edi
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x6c4]
push edi
call fcn.10014dc6
push ebx
lea ecx, [ebp - 0x4fc]
call fcn.10014dc6
push 2
lea ecx, [ebp - 0x6c4]
mov dword [eax], 0x98c53483
call fcn.10014dc6
push 2
lea ecx, [ebp - 0x6c4]
call fcn.10014dc6
mov esi, eax
lea ecx, [ebp - 0x200]
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [esi]
xor ebx, ebx
push 2
cmp ecx, dword [eax]
lea ecx, [ebp - 0x6c4]
setle bl
call fcn.10014dc6
mov ecx, dword [ebp - 0x3c]
xor edx, edx
neg ecx
cmp ebx, ecx
mov ecx, dword [ebp - 0x40]
push edi
setne dl
xor ebx, ebx
cmp edx, ecx
lea ecx, [ebp - 0x200]
setg bl
add ebx, dword [eax]
call fcn.10014dc6
mov ecx, dword [ebp - 0x34]
add ecx, ebx
xor ebx, ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x200]
setne bl
xor eax, eax
push eax
call fcn.10014dc6
lea ecx, [ebp - 0x6c4]
mov dword [eax], ebx
call fcn.10014dc1
xor ebx, ebx
inc ebx
jmp 0x1002c9fd
mov dword [ebp - 0x14], 0xd5834d56
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x40], 0x9e77f559
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x1002c99a
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x1002c99c
mov esi, eax
jmp 0x1002c99e
xor eax, eax
mov esi, ebx
cmp dword [ebp - 0x14], eax
jne 0x1002c9a8
cmp dword [ebp - 0x3c], eax
je 0x1002c9b6
push eax
lea ecx, [ebp - 0x200]
call fcn.10014dc6
xor eax, eax
push eax
lea ecx, [ebp - 0x200]
call fcn.10014dc6
push ebx
lea ecx, [ebp - 0x200]
call fcn.10014dc6
mov eax, dword [ebp - 0x14]
xor ecx, ecx
imul eax, esi
push ebx
cmp eax, 0x4d98
setge cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x4fc]
call fcn.10014dc6
mov ecx, dword [ebp - 0x14]
push 3
pop edi
mov dword [eax], ecx
lea ecx, [ebp - 0x4fc]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0x200]
mov dword [ebp - 4], eax
call fcn.10014dc1
lea eax, [ebp - 0xfbc]
mov dword [ebp - 0x1c], 0xfffffff9
push eax
lea eax, [ebp - 0xfcc]
xorps xmm0, xmm0
push eax
lea ecx, [ebp - 0x1188]
movdqu xmmword [ebp - 0xfcc], xmm0
call fcn.10014dd5
lea ecx, [ebp - 0x1f2]
mov esi, eax
call fcn.10009543
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x644]
push dword [esi]
call fcn.10014d9b
push edi
lea ecx, [ebp - 0xe18]
mov dword [ebp - 4], 0x10
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x14], eax
jmp 0x1002ca93
push dword [ebp - 0x14]
lea ecx, [ebp - 0xe18]
call fcn.10014dc6
mov dword [eax], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002ca80
push ebx
lea ecx, [ebp - 0x644]
call fcn.10014dc6
mov dword [eax], 0xfffffff7
jmp 0x1002caf6
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], eax
jmp 0x1002cadd
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002cad5
push eax
push 0x1102
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
xor eax, eax
cmp dword [ebp - 0x14], eax
jne 0x1002cb07
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xc
je 0x1002cab6
cmp dword [ebp - 0x14], eax
jne 0x1002cb07
push ebx
lea ecx, [ebp - 0x644]
call fcn.10014dc6
dec dword [eax]
push ebx
lea ecx, [ebp - 0x644]
call fcn.10014dc6
cmp dword [eax], 0xffffffea
je 0x1002caac
lea ecx, [ebp - 0xe18]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0x644]
mov dword [ebp - 4], eax
call fcn.10014dc1
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x1002cb44
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x1002cb46
mov eax, ebx
mov dword [ebp - 0x54], 0xd8eb7bfb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x40], eax
jmp 0x1002d2a4
mov dword [ebp - 0x28], 0x5a23e86f
lea ecx, [ebp - 0xba4]
mov dword [ebp - 0x14], esi
push ebx
call fcn.10014d59
xor eax, eax
mov dword [ebp - 4], 0x12
movdqa xmm0, xmmword [0x10008230]
lea ecx, [ebp - 0x1140]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0xf1c]
push eax
lea eax, [ebp - 0xf2c]
push eax
movdqu xmmword [ebp - 0xf2c], xmm0
call fcn.10014dd5
lea ecx, [ebp - 0x1b5]
mov esi, eax
call fcn.10009543
push eax
push dword [esi + 4]
lea ecx, [ebp - 0xc80]
push dword [esi]
call fcn.10014d9b
xor eax, eax
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x14], eax
jmp 0x1002cbeb
push dword [ebp - 0x14]
call fcn.10014dc6
mov dword [eax], 0x309642e4
inc dword [ebp - 0x14]
lea ecx, [ebp - 0xba4]
cmp dword [ebp - 0x14], ebx
jl 0x1002cbda
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
or eax, 0xffffffff
mov dword [ebp - 0x14], eax
xor eax, eax
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x28]
push 2
mov dword [eax], ecx
mov dword [ebp - 0x14], 0xfffffff8
pop esi
cmp dword [ebp - 0x14], 5
lea ecx, [ebp - 0xc80]
jg 0x1002cc49
xor eax, eax
mov dword [ebp - 0x38], eax
push esi
call fcn.10014dc6
mov dword [eax], ebx
inc dword [ebp - 0x14]
jmp 0x1002cc2b
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0xba4]
mov dword [ebp - 4], eax
call fcn.10014dc1
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffef
je 0x1002d2ac
push 3
pop edi
mov dword [ebp - 0x20], 0xf9c28ade
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x34], edi
push esi
call fcn.10014d59
mov dword [ebp - 4], 0x14
lea ecx, [ebp - 0x994]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x54], ebx
push 4
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x1002cccf
push dword [ebp - 0x24]
lea ecx, [ebp - 0x23c]
call fcn.10014dc6
mov dword [eax], 0x446df37d
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x1002ccb1
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x1002cceb
push dword [ebp - 0x24]
lea ecx, [ebp - 0x994]
call fcn.10014dc6
mov dword [eax], 0xf4fc6a3f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x1002ccd4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jg 0x1002cf69
or edi, 0xffffffff
mov dword [ebp - 0x40], 0x5872d9ee
lea ecx, [ebp - 0x308]
push esi
call fcn.10014d59
xor eax, eax
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x14], eax
jmp 0x1002cd3d
push dword [ebp - 0x14]
lea ecx, [ebp - 0x308]
call fcn.10014dc6
mov dword [eax], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002cd26
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
cmp eax, edi
jne 0x1002cdaf
xor eax, eax
lea ecx, [ebp - 0x23c]
push eax
call fcn.10014dc6
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, ebx
setg cl
add ecx, esi
jne 0x1002cd79
push ebx
lea ecx, [ebp - 0x308]
call fcn.10014dc6
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x308]
xor eax, eax
push eax
call fcn.10014dc6
mov esi, dword [ebp - 0x54]
lea ecx, [ebp - 0x23c]
neg esi
neg esi
push ebx
sbb esi, esi
inc esi
sub esi, dword [eax]
neg esi
sbb esi, esi
inc esi
call fcn.10014dc6
sub esi, dword [eax]
jne 0x1002cdaf
xor eax, eax
jmp 0x1002cdb1
mov eax, ebx
cmp eax, dword [ebp - 0x54]
je 0x1002cdcd
push dword [ebp - 0x20]
lea ecx, [ebp - 0x23c]
call fcn.10014dc6
cmp dword [eax], 0
je 0x1002cdcd
mov eax, ebx
jmp 0x1002cdcf
xor eax, eax
cmp ebx, eax
push 7
sbb eax, eax
inc eax
pop ecx
sub ecx, eax
add ecx, dword [ebp - 0x40]
je 0x1002cde9
mov dword [ebp - 0x30], edi
dec dword [ebp - 0x30]
jmp 0x1002cf48
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x1002cdfd
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 8
jle 0x1002cf48
jmp 0x1002ce0e
push 3
mov dword [ebp - 0x40], 0xfffffffc
mov dword [ebp - 0x14], eax
pop ecx
jmp 0x1002ce2e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x550], 0xfffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1002ce1d
push ebx
lea ecx, [ebp - 0x308]
call fcn.10014dc6
cmp dword [eax], 0
jne 0x1002cf48
xor eax, eax
lea ecx, [ebp - 0x308]
push eax
call fcn.10014dc6
mov ecx, dword [ebp - 0x34]
xor edx, edx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x308]
setge dl
xor ebx, ebx
cmp edx, 4
setge bl
xor eax, eax
push eax
call fcn.10014dc6
mov eax, dword [eax]
imul eax, ebx
test eax, eax
jne 0x1002ce8c
cmp dword [ebp - 0x548], eax
jne 0x1002ce8c
xor ebx, ebx
inc ebx
jmp 0x1002ce91
xor ebx, ebx
inc ebx
mov eax, ebx
neg eax
je 0x1002ceab
xor eax, eax
cmp dword [ebp - 0x550], eax
je 0x1002ceab
push eax
lea ecx, [ebp - 0x308]
call fcn.10014dc6
push ebx
lea ecx, [ebp - 0x23c]
call fcn.10014dc6
mov eax, dword [ebp - 0x550]
lea ecx, [ebp - 0x994]
push 2
call fcn.10014dc6
mov eax, dword [ebp - 0x54c]
lea ecx, [ebp - 0x23c]
push dword [ebp - 0x20]
call fcn.10014dc6
mov ecx, dword [ebp - 0x548]
cmp dword [eax], ecx
jne 0x1002cef4
push ebx
lea ecx, [ebp - 0x308]
call fcn.10014dc6
mov eax, dword [ebp - 0x548]
lea ecx, [ebp - 0x23c]
push dword [ebp - 0x20]
call fcn.10014dc6
push dword [ebp - 0x20]
lea ecx, [ebp - 0x23c]
call fcn.10014dc6
xor ebx, ebx
cmp dword [eax], ebx
jne 0x1002cf33
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x15
call fcn.10014dc1
inc dword [ebp - 0x20]
push 2
pop esi
cmp dword [ebp - 0x20], ebx
jle 0x1002cd08
push 3
pop edi
lea ecx, [ebp - 0x994]
call fcn.10014dc1
or eax, 0xffffffff
lea ecx, [ebp - 0x23c]
mov dword [ebp - 4], eax
call fcn.10014dc1
push edi
lea ecx, [ebp - 0xc98]
call fcn.10014d59
push esi
lea ecx, [ebp - 0xe78]
mov dword [ebp - 4], 0x17
call fcn.10014d59
mov byte [ebp - 4], 0x18
xor eax, eax
mov dword [ebp - 0x28], 0xcee61780
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
jge 0x1002cfd7
push dword [ebp - 0x20]
lea ecx, [ebp - 0xc98]
call fcn.10014dc6
mov dword [eax], 0xae9714a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x1002cfb9
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x1002cffa
push dword [ebp - 0x20]
lea ecx, [ebp - 0xe78]
call fcn.10014dc6
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1002cfdf
xor eax, eax
push 3
mov dword [ebp - 0x20], eax
pop ecx
cmp dword [ebp - 0x20], ecx
jge 0x1002d01d
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xab4], 0xfffffff8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1002d005
xor eax, eax
inc dword [ebp - 0xaac]
mov dword [ebp - 0x28], 0xfffffffc
jmp 0x1002d059
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], eax
jmp 0x1002d049
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x1002d046
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x1002d034
cmp dword [ebp - 0xaac], eax
jne 0x1002d05f
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffe6
jg 0x1002d02c
lea ecx, [ebp - 0xe78]
call fcn.10014dc1
or edi, 0xffffffff
lea ecx, [ebp - 0xc98]
mov dword [ebp - 4], edi
call fcn.10014dc1
xor eax, eax
lea ecx, [ebp - 0xe30]
mov byte [ebp - 0xd], al
mov dword [ebp - 0x38], 0xfe6e
mov dword [ebp - 0x38], 0x1dbeccce
mov dword [ebp - 0x50], 0x37ad4351
mov dword [ebp - 0x38], 0xb1d6
mov dword [ebp - 0x28], 0xa9d2e819
mov dword [ebp - 0x54], 0x53005475
mov dword [ebp - 0x40], 0xf1d4b082
push ebx
call fcn.10014d59
xor eax, eax
mov dword [ebp - 4], 0x19
push 3
mov dword [ebp - 0x24], eax
pop ecx
cmp dword [ebp - 0x24], ecx
jge 0x1002d0e9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x6a4], 0x63f9e923
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x1002d0d1
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x1002d105
push dword [ebp - 0x24]
lea ecx, [ebp - 0xe30]
call fcn.10014dc6
mov dword [eax], 8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x1002d0ee
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x28]
cmp eax, 0xfffffff9
jg 0x1002d1e8
mov eax, dword [ebp - 0x6a0]
xor edx, edx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
test eax, eax
mov eax, dword [ebp - 0x50]
sets dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x69c]
setl cl
add eax, ecx
mov ecx, dword [ebp - 0x54]
add ecx, eax
jne 0x1002d1e8
mov dword [ebp - 0x54], 0x83d96456
xor eax, eax
mov dword [ebp - 0x30], 0xe203d7e6
push 3
mov dword [ebp - 0x14], eax
pop ecx
cmp dword [ebp - 0x14], ecx
jge 0x1002d17f
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x69c]
mov eax, dword [ebp - 0x6a0]
neg edx
cmp edx, eax
sete cl
add dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0xe30]
mov dword [ebp - 4], edi
call fcn.10014dc1
cmp byte [ebp - 0xd], 0
je 0x1002d297
mov eax, 0x48d327cb
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
xor eax, eax
push 3
mov dword [ebp - 0x1c], 0x5683c8fc
pop ecx
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], eax
jl 0x1002d27e
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffef
jne 0x1002cc6e
mov edi, dword [sym.imp.GDI32.dll_CreateHalftonePalette]
xor eax, eax
mov dword [ebp - 0x20], ebx
or ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
mov esi, 0x622cfb64
mov dword [ebp - 0x54], 4
mov dword [ebp - 0x40], esi
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1002d2dd
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
dec dword [ebp - 0x20]
je 0x1002d3b4
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
sub edx, 0x3c2f893b
je 0x1002d306
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
add eax, 0xc2c7a1ee
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
add eax, 0xfffffffc
je 0x1002d332
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x20]
jl 0x1002d34b
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1002d34d
mov edx, ebx
jmp 0x1002d34f
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setl cl
xor edx, edx
cmp ecx, eax
setl dl
sub edx, dword [ebp - 0x24]
shl edx, 2
test edx, edx
jne 0x1002d376
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x1002d378
mov ecx, ebx
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp eax, dword [ebp - 0x24]
je 0x1002d38e
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002d390
mov ecx, ebx
jmp 0x1002d392
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x54], eax
add ecx, 0x5601
mov eax, dword [ebp - 0x54]
cmp eax, ecx
setl dl
imul edx, dword [ebp - 0x24]
test edx, edx
je 0x1002d3b4
mov eax, ebx
jmp 0x1002d3b6
xor eax, eax
mov dword [ebp - 0x40], eax
or eax, 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x54], 4
mov dword [ebp - 0x40], esi
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x1002d3e6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
dec dword [ebp - 0x20]
je 0x1002d4bd
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
sub edx, 0x3c2f893b
je 0x1002d40f
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
add eax, 0xc2c7a1ee
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
add eax, 0xfffffffc
je 0x1002d43b
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x20]
jl 0x1002d454
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1002d456
mov edx, ebx
jmp 0x1002d458
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setl cl
xor edx, edx
cmp ecx, eax
setl dl
sub edx, dword [ebp - 0x24]
shl edx, 2
test edx, edx
jne 0x1002d47f
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x1002d481
mov ecx, ebx
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp eax, dword [ebp - 0x24]
je 0x1002d497
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002d499
mov ecx, ebx
jmp 0x1002d49b
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x54], eax
add ecx, 0x5601
mov eax, dword [ebp - 0x54]
cmp eax, ecx
setl dl
imul edx, dword [ebp - 0x24]
test edx, edx
je 0x1002d4bd
mov eax, ebx
jmp 0x1002d4bf
xor eax, eax
mov dword [ebp - 0x40], eax
xor eax, eax
push 7
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
pop ecx
cmp dword [ebp - 0x14], ebx
jge 0x1002d4e5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], ecx
inc dword [ebp - 0x14]
jmp 0x1002d4d1
push 0xffffffffffffffe6
pop esi
push 0xfffffffffffffffc
mov dword [ebp - 0xc8], 0x1d
pop edx
cmp dword [ebp - 0xc8], esi
jle 0x1002d50e
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xc8]
jmp 0x1002d4f5
xor eax, eax
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
jmp 0x1002d529
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe0], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002d51c
mov dword [ebp - 0xe0], 0x1d
jmp 0x1002d549
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xe0]
cmp dword [ebp - 0xe0], esi
jg 0x1002d53a
xor eax, eax
mov dword [ebp - 0x40], 0xba772304
mov dword [ebp - 0x14], eax
jmp 0x1002d56c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd0], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002d55f
mov dword [ebp - 0xd0], 0x1d
jmp 0x1002d58c
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], esi
jg 0x1002d57d
mov dword [ebp - 0x14], 0x30f94f37
xor eax, eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002d5c0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x124], 0xc2e0cf57
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002d5a8
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x1002d672
mov dword [ebp - 0x2c], 0xccbad86e
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x2c], eax
jmp 0x1002d624
cmp dword [ebp - 0x2c], eax
jle 0x1002d5db
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1002d692
push 0x1711
push 0x1c5a
push eax
push 0x1adf
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebp - 0x24], 0x8256
lea ecx, [ebp - 0x764]
push 2
call fcn.10014d59
mov dword [ebp - 4], 0x1a
lea ecx, [ebp - 0xcb0]
mov dword [ebp - 0x14], 0x3ee76373
xor eax, eax
push 4
mov dword [ebp - 0x3c], 0x3c7d24b5
pop esi
mov dword [ebp - 0x1c], 0x39cee24b
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x38], esi
push esi
call fcn.10014d59
mov byte [ebp - 4], 0x1b
xor eax, eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x38], 0xa0e7b2e1
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1002d714