Function at 0x10015c7f
Capabilities:
Check os version
Get common file path
Get graphical window text
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10c
mov eax, 0x2d5e48d3
mov dword [esp + 0x80], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
push ebx
mov dword [esp + 0xa4], eax
xor ebx, ebx
mov dword [esp + 0x10], 0x52061f6
push esi
mov dword [esp + 0x14], 3
mov esi, edx
push edi
mov dword [esp + 0x48], esi
cmp dword [esp + 0x18], ebx
jl 0x10015cf0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0xa0]
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xa0], ecx
dec dword [esp + 0x18]
jns 0x10015cd4
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10015d05
push 0x1d30
call dword [sym.imp.USER32.dll_MessageBeep]
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], 0x486b6feb
push 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10015d31
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x38], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10015d21
mov dword [esp + 0x10], ebx
jmp 0x10015d50
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x98], 0xc4d1454b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10015d3d
mov eax, ebx
cmp dword [esp + 0x3c], ebx
je 0x10015d60
mov eax, ecx
mov dword [esp + 0x98], eax
xor edx, edx
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x3c]
imul ecx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
cmp ecx, eax
mov eax, dword [esp + 0x38]
sete dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
setne bl
sub ebx, eax
neg ebx
sbb ebx, ebx
sub ecx, dword [esp + 0x3c]
inc ebx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, ebx
setne al
xor ebx, ebx
mov dword [esp + 0x24], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10015dc9
call edi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [esp + 0x2c], 0xffffffff
xor eax, eax
mov dword [esp + 0x1c], 0x609fa85f
inc eax
mov dword [esp + 0x14], eax
push 2
mov dword [esp + 0x2c], 0xc3414b58
mov dword [esp + 0x18], 0xa
pop edx
cmp dword [esp + 0x14], 0xfffffff0
jge 0x10015eae
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x20], ebx
jmp 0x10015e1f
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xdc], 0x47dc4b4e
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x10015e0c
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10015e40
push ebx
push 0x23f2
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
push 2
pop edx
mov dword [esp + 0x10], ebx
jmp 0x10015e9f
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], ebx
jmp 0x10015e95
mov dword [esp + 0x20], edx
mov dword [esp + 0x20], ebx
jmp 0x10015e79
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10015e75
push ebx
push 0x178e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push 2
pop edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edx
jle 0x10015e5a
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xdc], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x10015e50
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x10015e46
dec dword [esp + 0x14]
jmp 0x10015df3
mov dword [esp + 0x10], 0xfb8eb5ea
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0xddbc3707
mov dword [esp + 0x20], 0xe7f737a9
mov dword [esp + 0x34], 0x8213af72
mov dword [esp + 0x24], 0x4794
mov dword [esp + 0x1c], 0xf9f7c8b1
mov dword [esp + 0x28], 0x9135
mov dword [esp + 0x10], ebx
jmp 0x10015f04
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x50], 0x67b8f5f4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10015ef4
mov dword [esp + 0x10], ebx
jmp 0x10015f23
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xf0], 0xfffffffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10015f10
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10015f3d
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
inc dword [esp + 0x1c]
jne 0x10015fad
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x50], ebx
jne 0x10015f55
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp eax, 1
mov eax, dword [esp + 0x50]
setle cl
xor edx, edx
cmp ecx, eax
setge dl
imul ecx, dword [esp + 0x14], 0x67b3
mov eax, dword [esp + 0x54]
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, eax
mov eax, dword [esp + 0x14]
add eax, ecx
imul eax, dword [esp + 0x34]
test eax, eax
je 0x10015f9e
cmp dword [esp + 0x24], ebx
je 0x10015f9e
xor edx, edx
inc edx
mov eax, edx
jmp 0x10015fa3
xor edx, edx
mov eax, ebx
inc edx
cmp eax, dword [esp + 0x50]
jl 0x10015fb0
mov ecx, ebx
jmp 0x10015fb2
xor edx, edx
inc edx
mov ecx, edx
mov eax, dword [esp + 0x50]
sub ecx, eax
jne 0x10015fc2
cmp dword [esp + 0x28], ebx
jne 0x10015fc2
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
cmp eax, 0xf545
setl dl
xor ecx, ecx
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0x2c]
jge 0x1001601d
cmp dword [esp + 0x18], ebx
jne 0x1001601d
mov eax, dword [esp + 0x14]
xor eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x18]
imul eax, eax, 0x6c7f
cmp eax, 8
mov eax, dword [esp + 0x2c]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov dword [esp + 0x64], ebx
inc ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x14], ebx
jmp 0x10016080
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xd8], 0xbf506e60
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1001606d
mov dword [esp + 0x64], ebx
cmp dword [esp + 0x64], 0x16
je 0x100160df
mov dword [esp + 0x14], 0x94fe5f36
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100160a9
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], ebx
jl 0x100160d1
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100160cb
push ebx
push ebx
push 0x14ef
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
dec dword [esp + 0x14]
jns 0x100160b3
inc dword [esp + 0x64]
cmp dword [esp + 0x64], 0x16
jne 0x10016091
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x10016164
mov dword [esp + 0x14], ebx
jmp 0x100160fb
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x7c], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x100160eb
mov dword [esp + 0x28], 0xffffffff
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1001611c
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
xor ecx, ecx
inc ecx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10016148
push ebx
call edi
push eax
push 0x2049
push 0x2290
push 0x613
push 0x25aa
push ebx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], ebx
jmp 0x1001615a
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x7c], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x1001614e
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffed
jl 0x100160e5
mov dword [esp + 0x18], 0x4f98cafa
mov eax, 0xf068cd54
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x24], 0x76a47cde
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100161c0
push ebx
push ebx
push 0x1c85
push ebx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp dword [esp + 0x18], 0x8d383303
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0xfd2d
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
inc ecx
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp edx, eax
mov eax, 0xbe76d238
setg cl
add ecx, 0x3c713cda
cmp eax, ecx
sbb eax, eax
xor edx, edx
inc eax
inc edx
cmp eax, edx
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x4d3ec93c
setge cl
xor eax, eax
cmp ecx, 0x2929
setle al
mov dword [esp + 0xd4], eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
jne 0x10016230
cmp dword [esp + 0x18], ebx
jne 0x10016230
mov edx, ebx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
je 0x10016278
mov dword [esp + 0x28], 0xcc013cef
mov dword [esp + 0x24], 0x79e5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10016284
push ebx
call dword [sym.imp.USER32.dll_RegisterClassW]
jmp 0x10016284
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xd5d64f68
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], 0x744d0289
mov dword [esp + 0x14], ebx
jmp 0x100162a9
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 0x99ac7894
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10016299
mov dword [esp + 0x10], ebx
jmp 0x100162e3
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x4c], ebx
jne 0x100162e9
mov dword [esp + 0x18], ebx
jmp 0x100162d9
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x4c], 0x7cefa9d1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x100162c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x100162b5
mov dword [esp + 0x10], ebx
jmp 0x10016307
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10016303
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_FlashWindow]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x100162ef
mov dword [esp + 0x10], 8
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebx
jmp 0x10016332
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x90], 4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001631f
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10016351
push 0x1ea9
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], 8
jne 0x10016452
xor esi, esi
mov dword [esp + 0x2c], 0x8efa97f5
mov dword [esp + 0x14], 0x9495116
mov dword [esp + 0x24], 0xffffffff
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jge 0x100163a2
mov ecx, ebx
cmp dword [esp + 0x94], ebx
je 0x100163a5
lea ecx, [esi + 1]
mov eax, dword [esp + 0x10]
xor edx, edx
sub ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
cmp eax, 0x3847d228
mov eax, dword [esp + 0x2c]
setne dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
setl cl
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
add edx, 0x7f39ab77
cmp edx, eax
setle cl
sub ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x2ae8
setle al
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
jne 0x10016415
mov eax, ebx
cmp dword [esp + 0x2c], ebx
je 0x10016418
lea eax, [esi + 1]
cmp eax, dword [esp + 0x2c]
jge 0x10016439
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1001643f
push 0x2395
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x1001643f
cmp dword [esp + 0x14], ebx
jne 0x1001644e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 8
je 0x10016366
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1c], 8
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 3
jge 0x1001647e
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x10c], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10016468
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], ebx
jl 0x100164a3
lea eax, [esp + 0x74]
mov dword [esp + 0x74], ebx
push eax
push ebx
call fcn.10018cc4
dec dword [esp + 0x24]
pop ecx
pop ecx
jns 0x1001648c
xor edx, edx
mov dword [esp + 0x1c], 0x3d06ce12
mov dword [esp + 0x14], ebx
inc edx
cmp dword [esp + 0x14], 2
jge 0x100164ca
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x80], edx
inc dword [esp + 0x14]
jmp 0x100164b2
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], ebx
jmp 0x1001655a
mov dword [esp + 0x18], 0x439cb61d
mov ecx, edx
mov dword [esp + 0x28], 0x700168aa
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
mov eax, dword [esp + 0x18]
sub ecx, eax
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x110e
setg al
sub eax, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
je 0x1001652c
mov ecx, edx
cmp dword [esp + 0x84], ebx
jne 0x1001652e
mov ecx, ebx
mov eax, dword [esp + 0x18]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x18]
push 1
setg dl
xor ecx, ecx
cmp eax, edx
pop edx
setl cl
cmp ecx, 8
sbb eax, eax
neg eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jg 0x100164db
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0x12
je 0x10016905
mov esi, dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], ebx
jmp 0x10016594
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x40], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10016584
mov dword [esp + 0x10], ebx
jmp 0x100165b4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb0], 0xc4d1454b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100165a1
cmp dword [esp + 0x44], ebx
jne 0x100165c5
mov eax, ebx
jmp 0x100165c8
xor eax, eax
inc eax
mov dword [esp + 0xb0], eax
xor edx, edx
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x44]
imul ecx, eax
mov eax, dword [esp + 0x44]
cmp ecx, eax
mov eax, dword [esp + 0x40]
sete dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
setne bl
sub ebx, eax
neg ebx
sbb ebx, ebx
sub ecx, dword [esp + 0x44]
inc ebx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, ebx
setne al
xor ebx, ebx
mov dword [esp + 0x28], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1001662b
call edi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [esp + 0x20], 6
mov dword [esp + 0x28], 0x456160cb
mov dword [esp + 0x14], ebx
jmp 0x10016650
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xe8], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10016641
xor ecx, ecx
mov dword [esp + 0x20], ebx
inc ecx
jmp 0x100166db
mov dword [esp + 0x28], 0x4b25b3b9
mov dword [esp + 0x28], 0x2ff40fc0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], 8
mov dword [esp + 0x14], ebx
jmp 0x10016695
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf8], 0x51ea66e5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10016682
inc dword [esp + 0x24]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100166d7
push 0xafa
push 0x5c5
push 0x241a
push 0x19f8
push 0xaf
push 0x129d
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_RoundRect]
xor ecx, ecx
inc ecx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ecx
jle 0x10016660
mov eax, dword [esp + 0xec]
mov dword [esp + 0x28], eax
mov byte [esp + 0x33], bl
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], ecx
mov dword [esp + 0x24], 0x974b666a
mov dword [esp + 0x24], 0xb95
mov dword [esp + 0x24], 0x2dd7
mov dword [esp + 0x10], ebx
jmp 0x1001672d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x88], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001671e
mov dword [esp + 0x10], ebx
jmp 0x1001674c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x100], 0x67f5ed9a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10016739
mov eax, dword [esp + 0x28]
lea eax, [esp + 0x33]
mov dword [esp + 0x88], 8
dec dword [esp + 0x24]
push eax
push ebx
call fcn.10018c7c
mov dword [esp + 0x28], 0x8cff0ea7
mov byte [esp + 0x17], bl
pop ecx
pop ecx
cmp byte [esp + 0xf], bl
je 0x1001678e
call edi
push eax
call dword [sym.imp.USER32.dll_IsIconic]
mov dword [esp + 0x20], ebx
jmp 0x100168e3
mov dword [esp + 0x18], ebx
mov dword [esp + 0x18], ebx
jmp 0x100168b3
mov dword [esp + 0x10], ebx
jmp 0x100167bd
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb8], 0x3eee2fde
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x100167aa
mov dword [esp + 0x10], ebx
jmp 0x100167d6
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x58], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100167ca
xor ecx, ecx
mov dword [esp + 0x10], ebx
inc ecx
jmp 0x100167f6
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x78], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x100167e6
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10016817
push ebx
push 0x18a
push 0x15cd
call dword [sym.imp.GDI32.dll_CreatePen]
mov dword [esp + 0x5c], ebx
jmp 0x100168a4
mov dword [esp + 0x34], 0x63c40785
xor ecx, ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x24], 6
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + eax*4 + 0xb8]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
sub eax, 0xebb
imul eax, dword [esp + 0x18]
mov edx, dword [esp + 0xbc]
sub edx, eax
mov eax, dword [esp + 0xbc]
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0xfffffff7
setle al
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x24]
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + eax*4 + 0xb8]
mov eax, dword [esp + 0x34]
add eax, edx
imul ecx, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x24], 5
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], 3
jle 0x10016820
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 5
jg 0x100167a4
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100168df
push ebx
push 0x2fd
push 0x20b3
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x16
jne 0x10016797
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x12
jne 0x1001657a
mov esi, dword [esp + 0x48]
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x28], 0x5e17ca00
mov dword [esp + 0x20], 0xffffffee
jmp 0x1001692b
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xc
je 0x1001691f
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001694e
push ebx
push 0x1526
push 0x5f
call edi
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov dword [esp + 0x14], 0x82062403
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10016969
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], ebx
jmp 0x10016991
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001698d
push 0x14ee
push 0x9ac
call edi
push eax
call dword [sym.imp.USER32.dll_SetClassLongA]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 5
jl 0x1001696f
mov eax, esi
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x8c]
mov esi, edx
mov edi, eax
call fcn.10015c0d
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret