Function at 0x10015031
Capabilities:
Accept command line arguments
Get disk size
Get memory capacity
Modify service
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ac
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
push esi
mov esi, dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 0xa0], ecx
xor ecx, ecx
mov dword [ebp - 0x1c], 0x31713b91
push edi
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x1c], ecx
jmp 0x100150ce
mov dword [ebp - 0x10], ecx
jmp 0x10015079
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xe8], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10015068
mov dword [ebp - 0xe0], ecx
jmp 0x100150b1
cmp byte [ebp - 1], 0
je 0x10015099
push ecx
call ebx
push eax
call dword [sym.imp.USER32.dll_EndPaint]
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x100150ab
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
xor ecx, ecx
dec dword [ebp - 0xe0]
cmp dword [ebp - 0xe0], 0xfffffffc
mov byte [ebp - 1], cl
je 0x10015087
cmp byte [ebp - 1], 0
je 0x100150cb
push ecx
call ebx
push eax
call esi
xor ecx, ecx
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff0
jg 0x10015063
xor edi, edi
inc edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 8], 0xa122
push 3
pop edx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x24], 0xfffffffb
mov dword [ebp - 0x10], ecx
jmp 0x1001511c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x178], 0x1d018875
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001510b
cmp dword [ebp - 8], ecx
jne 0x10015144
mov eax, dword [ebp - 8]
mov dword [ebp - 0xd4], edi
cmp dword [ebp - 8], 0x6173
jle 0x10015140
cmp dword [ebp - 0xd4], ecx
jne 0x10015144
mov edx, ecx
jmp 0x10015146
mov edx, edi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
sub eax, 0x2e97
neg eax
sbb eax, eax
add eax, 0x8e47
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x178], eax
mov dword [ebp - 8], edx
jmp 0x1001518c
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015189
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x10015177
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x10], edx
jmp 0x100151a7
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x184], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001519a
mov dword [ebp - 0x1c], edx
jmp 0x100151c1
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x184], edx
jne 0x100151c7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x100151b2
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0xfffffff1
jg 0x10015346
mov dword [ebp - 0x24], 0x2ee6d058
mov dword [ebp - 8], 0x8b15e3
mov dword [ebp - 0x14], 0xe712c519
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x10], edx
jmp 0x10015209
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x50], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100151ff
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
je 0x10015219
mov edx, edi
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
test ecx, ecx
mov dword [ebp - 0x4c], ecx
sete dl
xor ecx, ecx
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
cmp edx, eax
mov eax, dword [ebp - 0x24]
mov edx, edi
setle cl
sub edx, eax
mov eax, dword [ebp - 0xc]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, 0xb8b78acc
setg cl
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
jne 0x10015286
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
cmp eax, edi
setle cl
xor ebx, ebx
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
je 0x1001528d
cmp dword [ebp - 0xc], ebx
je 0x1001528d
jmp 0x10015288
xor ebx, ebx
cmp dword [ebp - 0x34], ebx
jne 0x10015294
mov eax, ebx
cmp dword [ebp - 8], ebx
je 0x10015296
mov eax, edi
cmp eax, edi
sbb eax, eax
neg eax
imul eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
je 0x100152d2
mov dword [ebp - 8], 0x14
jmp 0x100152ca
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x100152c7
push 0x1fa5
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffe6
je 0x100152b1
jmp 0x10015330
mov dword [ebp - 0x14], 0x8a3d3555
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x100152e8
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0xc], eax
je 0x100152f6
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setl dl
xor ebx, ebx
cmp edx, 0x615a0349
setge bl
xor ecx, ecx
cmp ebx, eax
setle cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff1
push 0
pop edx
jle 0x100151e2
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], 0x7d2703d9
mov dword [ebp - 0x34], 0x9ecf4a41
mov dword [ebp - 0x1c], 0xe19d
mov dword [ebp - 0x14], 0xe9646b8d
mov dword [ebp - 0x24], 0xcb972524
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x10], edx
jmp 0x10015385
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x154], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10015378
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c], 0x310c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edx
jne 0x100153a9
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x14c], eax
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100153d3
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor edx, edx
mov dword [ebp - 0x14], 0xd1e1e87d
mov dword [ebp - 0x28], 7
mov dword [ebp - 0xc], 0xfffffff9
mov dword [ebp - 8], edx
jmp 0x100153fa
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x160], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x100153ed
mov dword [ebp - 8], edx
jmp 0x10015416
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x138], 0xfffffffd
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10015405
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001542d
push edx
call ebx
push eax
call esi
xor edx, edx
push 2
pop esi
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], edx
jl 0x100154f7
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x10], edx
jmp 0x10015468
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x194], 0xfffffff9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10015457
mov dword [ebp - 0x54], edx
jmp 0x100154bc
mov dword [ebp - 0x28], 8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x54]
cmp dword [ebp + eax*4 - 0x160], 0x924b5411
mov eax, dword [ebp - 0x24]
sbb ecx, ecx
inc ecx
imul eax, ecx
sub eax, dword [ebp - 0x138]
je 0x100154a9
mov ecx, edi
cmp dword [ebp - 0x28], edx
jne 0x100154ab
mov ecx, edx
xor eax, eax
cmp ecx, 6
sete al
mov dword [ebp - 0x194], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], esi
jle 0x10015473
mov dword [ebp - 0xc], edx
jmp 0x100154e9
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], edx
jne 0x100154ee
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100154e6
push edx
push 0x90f
push edx
call dword [sym.imp.GDI32.dll_GetRegionData]
xor edx, edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jle 0x100154c6
dec dword [ebp - 0x14]
jns 0x1001543c
mov dword [ebp - 0x28], 0xd6b3bfa3
mov dword [ebp - 0x24], 0xfffffffd
mov dword [ebp - 0x2c], 0x42eb
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015527
push 0x218a
push edx
call ebx
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_MapWindowPoints]
xor ebx, ebx
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10015538
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov dword [ebp - 0x1c], 0xf145ba13
mov dword [ebp - 0x18], 0xfffffffc
push 3
mov dword [ebp - 0x2c], 0xfffffff7
mov dword [ebp - 0x10], ebx
pop esi
jmp 0x10015562
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x110], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10015555
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10015579
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
push 2
mov dword [ebp - 0x18], ebx
pop edx
jmp 0x10015598
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x110], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jle 0x10015581
mov dword [ebp - 0xc], 0xade19d29
mov dword [ebp - 8], ebx
jmp 0x100155ba
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x94], 6
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100155a9
mov dword [ebp - 8], ebx
jmp 0x100155d5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1ac], 0x4f2887cf
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100155c4
inc dword [ebp - 0xc]
mov dword [ebp - 0xc], ebx
jmp 0x100155f3
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x94], 0xf37d45db
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x100155e2
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x7d2703d9
mov dword [ebp - 0x10], 0x9ecf4a41
mov dword [ebp - 0x2c], 0xd6b3bfa3
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 8], 0xf145ba13
mov dword [ebp - 0xc], ebx
jmp 0x10015634
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x88], 0x86fd5d70
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x10015623
mov dword [ebp - 0xc], ebx
jmp 0x10015648
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001563e
mov dword [ebp - 0xc], ebx
jmp 0x1001565c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x44], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x10015652
mov edi, dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10015688
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1c07
push 0x9ae
push 0x26f4
push ebx
call edi
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0xe58b
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x10]
jge 0x1001571d
mov dword [ebp - 8], 0x2c752785
mov dword [ebp - 0x10], ebx
jmp 0x100156db
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xc8], 0x12535b5b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x100156ca
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc0]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
je 0x10015706
cmp dword [ebp - 0xc0], ebx
je 0x10015706
cmp dword [ebp - 0x14], ebx
jne 0x10015709
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x84], eax
jmp 0x100157cd
mov dword [ebp - 0x18], 0x5a6edb5b
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x100157cd
mov dword [ebp - 0x2c], 0xfffffff9
xor ecx, ecx
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x2c], 0xc3d3
mov eax, dword [ebp - 0x2c]
cmp eax, 0x9e48
setne cl
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0x2197
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
setge bl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 8]
setl dl
xor ecx, ecx
cmp edx, ebx
setg cl
xor edx, edx
imul eax, ecx
cmp eax, 0x453d
mov eax, dword [ebp - 8]
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x38]
cmp eax, edx
mov eax, dword [ebp - 8]
setg cl
xor ebx, ebx
mov dword [ebp + eax*4 - 0x38], ecx
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x100157c4
cmp dword [ebp - 0x18], ebx
jne 0x100157c4
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100157bf
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
dec dword [ebp - 0x10]
jns 0x100157ab
dec dword [ebp - 8]
jns 0x10015730
or eax, 0xffffffff
mov dword [ebp - 8], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 8], ebx
jmp 0x1001586a
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x18], 0xe
jmp 0x10015861
mov dword [ebp - 0x10], 0x3e63e315
mov dword [ebp - 0x10], ebx
jmp 0x10015833
mov dword [ebp - 0x14], 0x79e672ca
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x10015830
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x1001582b
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
dec dword [ebp - 0x14]
jns 0x1001581b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x1001580c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x1001585e
push ebx
push 0xfc3
push 0x21af
push ebx
push 0x1cb7
push 0x20b4
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x14
jne 0x10015800
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xf
je 0x100157f0
mov esi, dword [sym.imp.USER32.dll_GetDC]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10015895
push 0xb2b
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_Polygon]
mov dword [ebp - 0x14], 0xbffbefa5
mov dword [ebp - 0x10], ebx
jmp 0x100158af
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x80], 0x4173
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100158a1
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
cmp ecx, eax
setge dl
xor ecx, ecx
mov dword [ebp - 0x14], edx
inc ecx
mov eax, dword [ebp - 0x14]
sub ecx, eax
imul ecx, dword [ebp - 0x74]
xor eax, eax
cmp ecx, 0x92c6
setle al
cmp eax, dword [ebp - 0x80]
je 0x10015905
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x1001590b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
jmp 0x1001590b
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], ebx
jmp 0x10015921
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x90], 0x86fd5d70
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10015910
mov dword [ebp - 0x10], 0xc77509cb
or eax, 0xffffffff
mov dword [ebp - 0xc], 4
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 8], 7
mov dword [ebp - 0x10], ebx
jmp 0x1001596a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x30], 0xc203
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jl 0x1001595c
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setle cl
sub ecx, eax
xor eax, eax
cmp ecx, 0x66fe
mov ecx, 0xfffa
setg al
cmp ecx, eax
mov eax, dword [ebp - 0x30]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x10]
inc ecx
cmp dword [ebp - 0x30], ecx
jg 0x100159c9
mov eax, ebx
cmp dword [ebp - 0x30], ebx
je 0x100159cb
mov eax, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x10015b37
mov dword [ebp - 0x18], 0xce3d9786
mov dword [ebp - 0xc], ebx
jmp 0x10015a5d
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x30]
cmp dword [ebp - 0x18], 5
jb 0x10015a3d
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x30]
cmp eax, 0x487972e8
mov eax, dword [ebp - 0x30]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp - 0xc]
dec eax
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setne dl
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
push 1
mov eax, dword [ebp + eax*4 - 0x30]
mov eax, dword [ebp - 0x30]
cmp eax, 0x8fbd
setge cl
mov dword [ebp - 0x2c], ecx
inc dword [ebp - 0xc]
pop ecx
cmp dword [ebp - 0xc], ebx
jle 0x100159e6
push 3
mov dword [ebp - 0x18], ebx
pop ecx
jmp 0x10015b22
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x10015b1f
mov dword [ebp - 8], ebx
jmp 0x10015a8d
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0xb0], ebx
jne 0x10015a92
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x10015a7e
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], ebx
jl 0x10015b16
mov dword [ebp - 0x14], ebx
jmp 0x10015ab0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x104], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10015a9f
mov dword [ebp - 0x104], ecx
cmp dword [ebp - 0x104], ebx
jl 0x10015ad8
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0xb0], ebx
jne 0x10015ad8
dec dword [ebp - 0x104]
jns 0x10015ac4
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10015b11
push 0x26a9
push 0x1b84
push 0xe3b
push 0x1457
push 0x355
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_DrawStateW]
push 3
pop ecx
dec dword [ebp - 8]
jns 0x10015a9a
dec dword [ebp - 0xc]
jns 0x10015a79
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jle 0x10015a6d
dec dword [ebp - 0x10]
push 1
pop ecx
jns 0x100159da
mov dword [ebp - 0xc], ebx
jmp 0x10015b46
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x40], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x10015b3c
mov dword [ebp - 0xc], ebx
jmp 0x10015b5a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x48], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x10015b50
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10015b81
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1c07
push 0x9ae
push 0x26f4
push ebx
call edi
xor edi, edi
mov dword [ebp - 0x18], 0xade19d29
mov dword [ebp - 8], ebx
inc edi
jmp 0x10015ba1
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x98], 6
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10015b90
push 3
mov dword [ebp - 8], ebx
pop ecx
jmp 0x10015bbf
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1a0], 0x4f2887cf
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10015bae
inc dword [ebp - 0x18]
mov dword [ebp - 0x18], ebx
jmp 0x10015bdd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], 0xf37d45db
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10015bcc
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], 0xe58b
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x34]
jge 0x10015d0a
mov dword [ebp - 0x2c], 0x2c752785
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], ebx
jmp 0x10015c38
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x16c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015c2b
push 2
mov dword [ebp - 0x10], ebx
pop esi
jmp 0x10015c54
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x16c], ebx
jne 0x10015c59
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x10015c45
mov dword [ebp - 0x14], ebx
jmp 0x10015c6f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xbc], 0x12535b5b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015c5e
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x14], ebx
jmp 0x10015c94
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x12c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015c87
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10015cac
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
mov dword [ebp - 0x1c], ebx
jmp 0x10015cc8
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x12c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x12c], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x10015cb1
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xb4]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
je 0x10015cf3
cmp dword [ebp - 0xb4], ebx
je 0x10015cf3
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x8c], eax
jmp 0x100160de
mov dword [ebp - 0x2c], 0x5a6edb5b
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x100160de
mov dword [ebp - 0x28], 0xfffffff9
xor ecx, ecx
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x28], 0xc3d3
mov eax, dword [ebp - 0x28]
cmp eax, 0x9e48
setne cl
sub ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0x2197
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x24]
setge bl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, ebx
mov esi, dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x1c]
setg cl
imul eax, ecx
xor ecx, ecx
cmp eax, 0x453d
mov eax, dword [ebp - 0x1c]
setg cl
xor edx, edx
cmp esi, ecx
setg dl
xor ebx, ebx
mov dword [ebp + eax*4 - 0x40], edx
mov dword [ebp - 8], 7
mov dword [ebp - 0x28], 6
mov dword [ebp - 0x28], 0xe6bae055
mov dword [ebp - 0x20], ebx
jmp 0x10015db8
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x70], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10015daa
mov eax, dword [ebp - 0x70]
xor edx, edx
cmp eax, 0x8932
mov eax, dword [ebp - 0x70]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, edi
setl al
cmp eax, 0xffffffff
je 0x10015de8
mov eax, edi
cmp dword [ebp - 8], ebx
jne 0x10015dea
mov eax, ebx
cmp eax, dword [ebp - 0x70]
jne 0x10015df2
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 8]
push 3
mov dword [ebp - 8], edi
mov dword [ebp - 8], ebx
pop esi
jmp 0x10015e51
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x70], edi
jne 0x10015e44
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x70]
test eax, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + eax*4 - 0x70]
imul eax, dword [ebp - 0x28], 9
cmp eax, ecx
jl 0x10015e39
mov ecx, ebx
cmp dword [ebp - 0x24], ebx
je 0x10015e3b
mov ecx, edi
mov eax, dword [ebp - 0x64]
sub ecx, eax
mov ecx, ebx
je 0x10015e46
mov ecx, edi
mov eax, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 0x28], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x10015e03
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], ebx
jl 0x100160d5
cmp dword [ebp - 0x2c], ebx
jne 0x100160d5
mov dword [ebp - 8], 0x9dada439
mov dword [ebp - 0x14], 0x7440271d
mov dword [ebp - 0x20], ebx
jmp 0x10015e8f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x130], 0xd6d2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x10015e7e
mov dword [ebp - 8], 0xffffffff
cmp dword [ebp - 8], ebx
je 0x10015f7a
push 0xfffffffffffffff9
pop edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x20], ebx
jmp 0x10015ebd
cmp dword [ebp - 0x20], edi
jl 0x10015eaf
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10015f89
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebp - 8], ebx
jmp 0x1001601e
dec dword [ebp - 0x1c]
jns 0x10015d1d
mov eax, dword [ebp - 0x9c]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0xa0]
mov esi, edx
mov edi, eax
call fcn.10014fbf
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret