Function at 0x10018139
Capabilities:
Delete directory
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10082f63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1f8
push ebx
push esi
push edi
push 3
pop edi
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x18c]
mov dword [esp + 0x18], 0xb4e1
push edi
mov dword [esp + 0xa8], edx
call fcn.100160cf
xor ebx, ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x1c], ebx
jmp 0x100181a5
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18c]
mov dword [eax + ecx*4], 0x4643cdf9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x1001818f
dec dword [esp + 0x18]
push 1
mov dword [esp + 0x1c], ebx
pop esi
jmp 0x1001822f
push esi
lea ecx, [esp + 0x114]
call fcn.100160cf
mov dword [esp + 0x10], 0xe31551da
mov dword [esp + 0x1c], ebx
jmp 0x100181e6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x110]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x100181d3
mov eax, dword [esp + 0x110]
inc dword [eax]
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x1001821f
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018219
push 0x81b
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
dec dword [esp + 0x10]
jns 0x10018203
lea ecx, [esp + 0x110]
call fcn.1001698f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x100181b8
or dword [esp + 0x20c], 0xffffffff
lea ecx, [esp + 0x18c]
call fcn.1001698f
mov dword [esp + 0x18], 0xa61928c1
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1001826e
push ebx
push 0x18b9
push 0x25ef
push ebx
call dword [sym.imp.GDI32.dll_SetPaletteEntries]
mov dword [esp + 0x18], 0xfffffff4
jmp 0x10018340
mov dword [esp + 0x1c], ebx
jmp 0x10018291
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x5c], 4
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10018281
mov dword [esp + 0x64], 0x1d
jmp 0x10018331
mov dword [esp + 0x1c], 0x49f845d8
mov dword [esp + 0x1c], 0xb
jmp 0x10018326
mov dword [esp + 0x2c], 0x3b6f9b69
mov dword [esp + 0x24], 0x6721f7d
cmp dword [esp + 0x18], ebx
je 0x10018311
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp eax, ecx
setg dl
xor eax, eax
cmp edx, 0xffffffff
setge al
xor ecx, ecx
test eax, eax
setle cl
xor edx, edx
add ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x64]
cmp ecx, eax
mov eax, dword [esp + 0x5c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setne cl
imul eax, ecx
mov ecx, esi
test eax, eax
jne 0x10018313
mov ecx, ebx
mov eax, dword [esp + 0x64]
imul eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x19
jl 0x100182b6
dec dword [esp + 0x64]
cmp dword [esp + 0x64], 0x12
jge 0x100182a4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 9
jg 0x1001827b
push 4
lea ecx, [esp + 0x144]
call fcn.100160cf
mov dword [esp + 0x20c], esi
lea ecx, [esp + 0x168]
mov dword [esp + 0x34], 0xfffffffd
mov dword [esp + 0x20], 0xf825e7a6
mov dword [esp + 0x18], ebx
push esi
call fcn.100160cf
mov dword [esp + 0x2c], 0xbd2ab60e
mov dword [esp + 0x1c], ebx
jmp 0x100183a2
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001838f
inc dword [esp + 0x18]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
je 0x100183e7
mov dword [esp + 0x20], esi
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100183cc
call edi
push eax
call dword [sym.imp.USER32.dll_IsIconic]
mov dword [esp + 0x18], 0xfffffff5
jmp 0x100183de
inc dword [esp + 0x2c]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x2d
jl 0x100183d6
jmp 0x100183f7
mov dword [esp + 0x20], 0x7059141a
mov dword [esp + 0x20], 0x68be135e
lea ecx, [esp + 0x168]
call fcn.1001698f
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x104]
push 3
call fcn.100160cf
mov dword [esp + 0x2c], 0x2c5d177c
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], 0x98b94be3
mov dword [esp + 0x20], 0x8308faa8
mov dword [esp + 0x18], ebx
jmp 0x1001844d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10018437
mov esi, dword [esp + 0x104]
mov edx, dword [esi + 4]
test edx, edx
je 0x100184df
xor eax, eax
mov ecx, 0xfffd
cmp dword [esi + 8], 0x30498d20
sete al
sub eax, edx
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
sub ecx, edx
cmp dword [esi], ecx
setne al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esi + 4]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
add ecx, 9
neg ecx
sbb ecx, ecx
add eax, 0x860532b6
inc ecx
add eax, ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add eax, ecx
cmp eax, ecx
jle 0x100184c9
cmp dword [esp + 0x24], ebx
jne 0x100184c9
mov ecx, ebx
jmp 0x100184cc
xor ecx, ecx
inc ecx
mov edx, dword [esi + 4]
xor eax, eax
cmp ecx, edx
setl al
cmp eax, edx
jle 0x100184df
xor ecx, ecx
inc ecx
jmp 0x100184e1
mov ecx, ebx
mov esi, dword [sym.imp.USER32.dll_GetDC]
xor eax, eax
cmp ecx, edx
mov byte [esp + 0xf], bl
setge al
xor ecx, ecx
imul eax, eax, 0xe8ef
add eax, edx
cmp eax, 0xfff7
setne cl
cmp ecx, 0xfd09
jle 0x1001851c
cmp byte [esp + 0xf], 0
je 0x10018541
push ebx
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
jmp 0x10018541
cmp byte [esp + 0xf], 0
je 0x1001852f
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_EndDoc]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018541
push ebx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
lea ecx, [esp + 0x104]
call fcn.1001698f
mov dword [esp + 0x20], 0xab274bf9
lea ecx, [esp + 0x198]
push 3
call fcn.100160cf
mov byte [esp + 0x20c], 2
mov eax, 0xa5d6c05b
mov dword [esp + 0x20], 0x452a26f3
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
push 3
pop edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], 0xbca7b5cf
mov dword [esp + 0x2c], 5
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x1c], ebx
jmp 0x100186e6
mov dword [esp + 0x18], 0xd03248c6
mov dword [esp + 0x2c], 9
mov dword [esp + 0x18], ebx
jmp 0x100186d8
mov dword [esp + 0x14], ebx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100185fb
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
push 3
pop edx
mov dword [esp + 0x14], ebx
jmp 0x100186ca
mov dword [esp + 0x10], 0x307d7c11
mov dword [esp + 0x20], 0x51fa4c82
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x10018661
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], ebx
jmp 0x10018655
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018646
push 0x17fd
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 3
pop edx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xac]
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edx
jle 0x1001862c
dec dword [esp + 0x10]
jns 0x1001861e
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xac]
cmp dword [esp + 0x14], ebx
jne 0x10018694
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x20], ebx
jne 0x10018694
mov eax, ebx
jmp 0x10018697
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
sub eax, 0xaed1
neg eax
sbb eax, eax
inc eax
add eax, dword [esp + 0x18]
imul ecx, eax, 0xec3
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xac], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x10018604
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jle 0x100185dd
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x100185c4
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018701
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [esp + 0x10], 0xfffffffb
xor esi, esi
mov dword [esp + 0x14], 0xffffffff
inc esi
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x2c], 0xfffffff6
mov dword [esp + 0x28], ebx
jmp 0x10018736
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x58], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], esi
jl 0x1001872a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x10018829
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], ebx
jl 0x1001881f
push 9
pop eax
mov dword [esp + 0x24], 0x68939f5f
mov dword [esp + 0x2c], 2
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jg 0x10018815
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x20], 0xc9995890
mov dword [esp + 0x18], ebx
jmp 0x10018802
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x58]
inc dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x58]
cmp dword [esp + 0x24], eax
jg 0x100187dd
mov eax, dword [esp + 0x18]
mov ecx, ebx
cmp dword [esp + eax*4 + 0x58], ebx
je 0x100187df
mov ecx, esi
xor eax, eax
cmp ecx, 0x16
setne al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x164], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x100187b7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x100187a1
push 9
pop eax
dec dword [esp + 0x14]
jns 0x1001876b
dec dword [esp + 0x10]
jns 0x1001875a
mov dword [esp + 0x14], ebx
jmp 0x10018841
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x140]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001882f
mov dword [esp + 0x14], 0x48d327cb
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], 0xc1932e3c
mov dword [esp + 0x18], 0xf6f49c23
mov dword [esp + 0x28], 7
mov dword [esp + 0x14], 0xffffffed
jmp 0x10018a05
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], 0x737b78f1
mov dword [esp + 0x20], 0x8e972ce3
mov dword [esp + 0x10], ebx
jmp 0x100188a3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x48], 0x972c40a9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018893
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x8213af72
sbb eax, eax
inc eax
add eax, 0x29694d2b
je 0x100188e0
mov edx, esi
cmp dword [esp + 0x14], ebx
jne 0x100188e2
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp eax, ecx
setl dl
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], ebx
je 0x1001897b
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x1001898b
push 3
lea ecx, [esp + 0xd8]
call fcn.100160cf
mov dword [esp + 0x10], ebx
jmp 0x10018943
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x91b7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001892d
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018960
push 0x29b
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0xd4]
call fcn.1001698f
dec dword [esp + 0x18]
jns 0x10018919
jmp 0x1001898b
mov dword [esp + 0x20], 0xf5e4d8d9
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x48], ebx
je 0x100189ef
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, esi
mov eax, dword [esp + 0x28]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
setne dl
sub eax, edx
jne 0x100189cb
mov ecx, ebx
cmp dword [esp + 0x48], ebx
je 0x100189cd
mov ecx, esi
mov eax, dword [esp + 0x14]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x14]
mov ecx, esi
jl 0x100189f1
mov ecx, ebx
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0x34]
imul eax, ecx
mov dword [esp + 0x20], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jge 0x10018879
mov dword [esp + 0x14], ebx
jmp 0x10018a2c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x198]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10018a16
mov eax, dword [esp + 0x140]
lea ecx, [esp + 0x198]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
sub eax, 0x35d34ae3
mov dword [esp + 0x20], eax
dec dword [esp + 0x30]
call fcn.1001698f
or dword [esp + 0x20c], 0xffffffff
lea ecx, [esp + 0x140]
call fcn.1001698f
mov dword [esp + 0x28], 0xbe4438b
lea ecx, [esp + 0xc8]
mov dword [esp + 0x24], 2
mov dword [esp + 0x10], 0xba22e974
mov dword [esp + 0x18], 0x3e1e01b1
push 3
call fcn.100160cf
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x20], esi
push 3
mov dword [esp + 0x34], 0x4fc3
mov dword [esp + 0x18], ebx
pop edx
jmp 0x10018ad8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xbc], 0xbbdebf88
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10018ac5
mov dword [esp + 0x14], ebx
jmp 0x10018af6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10018ae4
mov dword [esp + 0x14], ebx
jmp 0x10018b15
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1dc], 0xfffffffa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10018b02
mov eax, ebx
cmp dword [esp + 0x10], ebx
je 0x10018b26
mov eax, esi
mov dword [esp + 0x10], eax
xor edx, edx
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0xbc]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc0]
setle cl
sub ecx, eax
je 0x10018b62
mov ecx, esi
cmp dword [esp + 0xbc], ebx
jne 0x10018b64
mov ecx, ebx
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc8]
cmp ecx, dword [eax]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
setne dl
sub ecx, edx
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0xc8]
setne dl
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xbc]
sub ecx, edx
add eax, ecx
lea ecx, [esp + 0xc8]
mov dword [esp + 0x18], eax
dec dword [esp + 0x30]
call fcn.1001698f
push dword [esp + 0x44]
movdqa xmm0, xmmword [0x10007bc0]
lea eax, [esp + 0x1c8]
push eax
lea eax, [esp + 0x1bc]
mov dword [esp + 0x30], 0xffffffff
push eax
push ebx
lea ecx, [esp + 0x84]
mov dword [esp + 0x84], ebx
movdqu xmmword [esp + 0x1c4], xmm0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
call fcn.1001779b
mov dword [esp + 0x20c], 3
mov dword [esp + 0x28], 0x2ee6d058
mov dword [esp + 0x1c], 0xd19c9214
mov dword [esp + 0x18], 0xc7008b15
mov dword [esp + 0x30], 0x2e11914c
mov dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x20], 0x34ad
imul eax, dword [esp + 0x28], 5
test eax, eax
jne 0x10018c82
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0xc]
cmp ecx, 0xfffc
sbb eax, eax
xor edx, edx
inc eax
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp eax, edx
mov eax, ebx
setle cl
sub ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x28]
jl 0x10018c84
mov eax, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0x16
jle 0x10018d5d
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018cb5
push 0x4a1
push 0x2709
call edi
push eax
call dword [sym.imp.USER32.dll_CheckDlgButton]
mov dword [esp + 0x18], ebx
jmp 0x10018d40
push 2
lea ecx, [esp + 0x12c]
call fcn.100160cf
mov dword [esp + 0x10], ebx
jmp 0x10018ce8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x128]
mov dword [eax + ecx*4], 0x540ee1d4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10018cd2
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x28]
sub edx, dword [eax]
mov eax, dword [esp + 0x74]
add ecx, edx
xor edx, edx
cmp dword [eax + esi*4], ecx
mov eax, dword [esp + 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x30]
setge cl
xor edx, edx
cmp ecx, eax
lea ecx, [esp + 0x128]
setne dl
neg edx
add edx, edx
mov dword [esp + 0x20], edx
call fcn.1001698f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x10018cbe
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x16
jg 0x10018c97
xor esi, esi
inc esi
or dword [esp + 0x20c], 0xffffffff
lea ecx, [esp + 0x74]
call fcn.1001698f
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], 0x1df82d83
mov dword [esp + 0x18], 0x876a47cd
mov dword [esp + 0x14], ebx
jmp 0x10018f15
push esi
lea ecx, [esp + 0x84]
call fcn.100160cf
mov dword [esp + 0x1c], 0x78c38ec3
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x10018dc0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018dae
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x80]
mov dword [eax], ecx
test ecx, ecx
jne 0x10018e08
mov eax, dword [esp + 0x14]
mov edx, ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x80]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x30]
je 0x10018e0a
mov edx, esi
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
shl eax, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jg 0x10018f05
mov dword [esp + 0x20], 7
mov dword [esp + 0x10], ebx
jmp 0x10018e52
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], 0xd881
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10018e3f
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x10018ef4
mov eax, dword [esp + 0xa0]
xor ecx, ecx
mov eax, dword [esp + 0xa0]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x80]
mov eax, dword [edi + eax*4]
cmp eax, dword [edi + edx*4]
mov eax, dword [esp + 0x20]
setge cl
xor edx, edx
cmp ecx, dword [edi + esi*4]
setne dl
xor ecx, ecx
cmp dword [edi + eax*4], 0x623b
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
sete cl
xor eax, eax
cmp ecx, edx
setg al
mov dword [esp + 0x20], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10018eea
push 0xb15
push ebx
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_RedrawWindow]
dec dword [esp + 0x1c]
jns 0x10018e67
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x10018e31
xor esi, esi
inc esi
lea ecx, [esp + 0x80]
call fcn.1001698f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xd
jle 0x10018d8b
push 2
lea ecx, [esp + 0x178]
call fcn.100160cf
mov dword [esp + 0x20c], 4
mov dword [esp + 0x34], 0xe83c773
mov dword [esp + 0x10], 9
mov dword [esp + 0x20], 7
mov dword [esp + 0x30], 0x5ee4
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x2c], 0x81de9829
mov dword [esp + 0x10], ebx
jmp 0x10018f7f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x40], 0xb79f6a71
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018f6f
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
inc dword [esp + 0x30]
jne 0x10018fa7
mov dword [esp + 0x24], 0xfffffff9
mov eax, ebx
cmp dword [esp + 0x24], ebx
je 0x10018fa9
mov eax, esi
cmp eax, dword [esp + 0x20]
jge 0x10018fbf
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
xor edx, edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], 0xfffc
imul ecx, dword [esp + 0x2c], 0xffff
mov eax, dword [esp + 0x10]
cmp eax, ecx
setne dl
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], 0xa61928c1
mov dword [esp + 0x10], ebx
jmp 0x10019007
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d4], 0x3718
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10018ff4
mov dword [esp + 0x1c], ebx
jmp 0x10019104
mov dword [esp + 0x28], esi
mov dword [esp + 0x28], 0xffffffec
jmp 0x100190f5
push 2
lea ecx, [esp + 0xf0]
call fcn.100160cf
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x20], 0x6f93bd5d
mov dword [esp + 0x10], ebx
jmp 0x10019062
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax + ecx*4], 0x49f845d8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001904c
mov dword [esp + 0x18], ebx
jmp 0x100190df
mov dword [esp + 0x10], ebx
jmp 0x10019085
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10019075
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100190a9
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [esp + 0x3c], esi
cmp dword [esp + 0x3c], ebx
jl 0x100190db
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xec]
cmp dword [eax + ecx*4], ebx
jne 0x100190cf
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov eax, ebx
jmp 0x100190d1
mov eax, esi
mov dword [esp + 0x20], eax
dec dword [esp + 0x3c]
jns 0x100190b3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x1001906f
lea ecx, [esp + 0xec]
call fcn.1001698f
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0xe
jne 0x10019028
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffe4
jle 0x10019017
mov dword [esp + 0x10], ebx
jmp 0x1001912b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10019115
push 3
lea ecx, [esp + 0xe4]
call fcn.100160cf
push esi
lea ecx, [esp + 0xfc]
mov byte [esp + 0x210], 5
call fcn.100160cf
mov dword [esp + 0x20], 0x81f3403c
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x10019182
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001916f
mov dword [esp + 0x14], ebx
jmp 0x100191a5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xf8]
mov dword [eax + ecx*4], 0xb5457d67
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001918f
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xf8]
mov edx, dword [edi + 4]
mov dword [eax], edx
xor eax, eax
mov esi, dword [edi]
cmp esi, dword [edi + 4]
sete al
xor ecx, ecx
cmp eax, dword [edi + 4]
setle cl
xor eax, eax
cmp edx, ecx
setg al
xor ecx, ecx
cmp eax, dword [edi + 4]
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp esi, ecx
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xe0]
setle cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 4]
cmp ecx, dword [eax]
lea ecx, [esp + 0xf8]
setne dl
sub edx, dword [esp + 0x20]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x30], 0xffffb364
call fcn.1001698f
lea ecx, [esp + 0xe0]
mov byte [esp + 0x20c], 4
call fcn.1001698f
xor edi, edi
mov dword [esp + 0x1c], 0x3ae35568
inc edi
push 3
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], ebx
pop esi
jmp 0x10019266
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f4], 0x3009
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10019253
mov dword [esp + 0x1c], 0xffffffee
cmp dword [esp + 0x1c], 0x17
jle 0x100193e7
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0x11
cmp dword [esp + 0x28], 0x1c
jl 0x100193af
mov dword [esp + 0x10], 0xffffffff
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100192b5
call dword [sym.imp.USER32.dll_GetCapture]
mov dword [esp + 0x10], ebx
jmp 0x10019392
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100193d5
push ebx
push 0xffc
push 0xb93
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x17
jg 0x10019285
mov dword [esp + 0x28], 7
jmp 0x100198d0
mov dword [esp + 0x10], 6
lea ecx, [esp + 0x180]
push edi
call fcn.100160cf
mov dword [esp + 0x20], 0xfffffffc
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x18], 0xd0714ad
mov dword [esp + 0x20], edi
mov dword [esp + 0x20], 0xfe936be8
mov dword [esp + 0x14], ebx
jmp 0x10019449
cmp dword [esp + 0x28], 0xf
jle 0x100193f4
or dword [esp + 0x20c], 0xffffffff
lea ecx, [esp + 0x174]
call fcn.1001698f
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ebx
jmp 0x1001990c