Function at 0x10018452
Capabilities:
Check os version
Delete file
Enumerate gui resources
Get file system object information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10088745
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x228
push ebx
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x1c], 0x83c7730f
xor edi, edi
mov dword [esp + 0xcc], edx
mov dword [esp + 0x54], ecx
inc edi
mov dword [esp + 0x1c], ebx
jmp 0x100184a3
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xc8], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10018494
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100184ba
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x100184d7
mov eax, dword [esp + 0x1c]
cmp dword [esp + eax*4 + 0xc8], ebx
jne 0x100184d7
dec dword [esp + 0x1c]
jns 0x100184c4
mov dword [esp + 0x20], 0x83c7730f
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], 0x4e2d
push 2
call fcn.10016409
mov dword [esp + 0x10], 0xa6c6
mov dword [esp + 0x18], 0xfc37
mov dword [esp + 0x30], 0xad8edce5
mov dword [esp + 0x1c], ebx
jmp 0x10018529
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xdc]
mov dword [eax + ecx*4], 0xad59e57a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x10018513
cmp dword [esp + 0x20], ebx
je 0x1001858f
mov dword [esp + 0x1c], ebx
jmp 0x1001854b
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1c4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x1001853c
mov dword [esp + 0x20], ebx
jmp 0x10018563
inc dword [esp + 0x1c8]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x10018558
mov dword [esp + 0x20], ebx
jmp 0x10018586
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018582
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x27
jle 0x1001856f
jmp 0x10018609
mov eax, dword [esp + 0xdc]
xor edx, edx
mov dword [esp + 0x14], 0x815898f0
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x24], 0xfffffffb
mov eax, dword [eax]
sub eax, 0xde9bf9f
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x20]
setle dl
xor ecx, ecx
sub eax, edx
cmp eax, 0x1b0c
setge cl
cmp dword [esp + 0x14], ecx
jle 0x100185e6
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x10], ebx
je 0x100185fd
mov eax, dword [esp + 0xdc]
mov ecx, edi
cmp dword [eax], ebx
jne 0x100185ff
mov ecx, ebx
mov eax, dword [esp + 0x14]
sub eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ebx
mov eax, 0xbecc33ba
cmp dword [esp + 0x10], 0xfffffff0
je 0x100186da
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x28], ebx
xor ecx, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
cmp eax, dword [esi + 4]
setle cl
cmp dword [esp + 0x70], ecx
jg 0x1001865a
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x10]
test eax, eax
setns cl
xor edx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
cmp eax, 0xb5bcdce
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
setge dl
imul ecx, edx
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x70]
mov ecx, 0x70c0f3ad
sete dl
sub ecx, edx
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
mov eax, 0xbecc33ba
mov dword [esp + 0x30], ecx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff0
jne 0x10018624
lea ecx, [esp + 0xdc]
call fcn.1001648e
mov dword [esp + 0x1c], ebx
jmp 0x100186fb
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xc4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x100186ec
mov dword [esp + 0x10], 0x2ae7b79f
lea ecx, [esp + 0x16c]
mov dword [esp + 0x20], 0xf746e33a
mov dword [esp + 0x14], 0xfffffff6
mov dword [esp + 0x1c], 0x752570e
push 3
call fcn.10016409
mov dword [esp + 0x28], 0xc507b392
mov dword [esp + 0x30], 0x592e0c80
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], ebx
jmp 0x1001875d
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x40], 0xfffffff7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1001874d
mov dword [esp + 0x18], ebx
jmp 0x1001877c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001876a
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp ecx, eax
mov eax, dword [esp + 0x44]
sbb edx, edx
inc edx
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x44]
jge 0x100187a5
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x16c]
push 7
pop ecx
inc dword [eax + 8]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
neg eax
cmp ecx, eax
sbb edx, edx
inc edx
imul edx, dword [esp + 0x28]
sub edx, dword [esp + 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add edx, 0x223fa3a9
cmp edx, eax
mov eax, dword [esp + 0x20]
setl cl
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
add edx, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
cmp edx, eax
setne cl
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jne 0x10018836
cmp dword [esp + 0x14], ebx
jne 0x10018836
mov eax, ebx
cmp dword [esp + 0x28], ebx
je 0x10018838
mov eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
sub edx, eax
mov eax, dword [esp + 0x44]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
sete cl
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp eax, ecx
mov eax, dword [esp + 0x44]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x44]
setne cl
cmp ecx, 4
mov ecx, dword [esp + 0x24]
sbb esi, esi
sub ecx, eax
mov eax, dword [esp + 0x10]
xor edx, edx
inc esi
cmp ecx, edi
setg dl
xor ecx, ecx
cmp esi, eax
setl cl
xor eax, eax
cmp edx, ecx
lea ecx, [esp + 0x16c]
setg al
mov dword [esp + 0x10], eax
call fcn.1001648e
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], 0x275ff444
mov dword [esp + 0x24], 0x7c71
mov dword [esp + 0x34], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x10018992
mov dword [esp + 0x28], 4
xor ecx, ecx
mov dword [esp + 0x14], 0xce3051eb
mov dword [esp + 0x24], 0xfffffffb
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 0xfffffffc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
test eax, eax
setle cl
imul ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
sub eax, dword [esp + 0x14]
cmp dword [esp + 0x10], eax
jle 0x10018969
cmp dword [esp + 0x1c], ebx
jne 0x10018969
mov edx, ebx
jmp 0x1001896c
xor edx, edx
inc edx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x34], ecx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1001898e
call edi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xa
jg 0x100188ee
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100189be
push 0xb9e
push 0x16d0
push ebx
push 0x20d2
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100189cf
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x34], 0xfb0b
mov dword [esp + 0x1c], ebx
jmp 0x100189f0
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1a8], 0xc1ec2db2
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x100189dd
mov esi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018a11
push 0x14d4
call edi
push eax
call esi
mov eax, dword [esp + 0x34]
mov edi, dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], ebx
jl 0x10018bbb
mov dword [esp + 0x10], 0x477862f
mov dword [esp + 0x14], 0xc3dc99cd
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
jmp 0x10018af7
mov dword [esp + 0x18], 0xffffffff
xor edx, edx
mov dword [esp + 0x34], 0xffffffff
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
neg ecx
cmp ecx, eax
setg dl
sub edx, 9
neg edx
sbb edx, edx
inc edx
cmp edx, dword [esp + 0x18]
jne 0x10018a87
cmp dword [esp + 0x18], ebx
je 0x10018a87
xor ecx, ecx
inc ecx
jmp 0x10018a89
mov ecx, ebx
mov eax, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jne 0x10018ab3
cmp dword [esp + 0x18], ebx
jne 0x10018ab3
mov eax, ebx
jmp 0x10018ab6
xor eax, eax
inc eax
mov ecx, dword [esp + 0x10]
xor edx, edx
imul ecx, eax
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x18]
setne cl
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp dword [esp + 0x34], eax
setl cl
imul ecx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x14], ebx
jne 0x10018b02
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x10018a4d
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x100082a0]
lea eax, [esp + 0x1e8]
push eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0xf0], ebx
push eax
push ebx
lea ecx, [esp + 0xf8]
mov dword [esp + 0xfc], ebx
movdqu xmmword [esp + 0x1e4], xmm0
mov dword [esp + 0x100], ebx
call fcn.10017aee
mov dword [esp + 0x1c], ebx
jmp 0x10018b5b
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x50], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jl 0x10018b4f
mov dword [esp + 0x50], ebx
jmp 0x10018b91
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018b8d
push ebx
push ebx
push ebx
push 0xa4
push 0x10
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentExPointA]
inc dword [esp + 0x50]
cmp dword [esp + 0x50], 3
jle 0x10018b68
lea ecx, [esp + 0xe8]
call fcn.1001648e
mov eax, dword [esp + 0x20]
cmp dword [esp + eax*4 + 0xc4], ebx
jne 0x10018bbb
dec dword [esp + 0x20]
jns 0x10018a30
mov dword [esp + 0x38], 0xfffffffe
lea ecx, [esp + 0x184]
mov dword [esp + 0x38], 0x5f394a2a
mov eax, 0x8144ad72
mov dword [esp + 0x38], 0x2937a3a1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x38], 0xfffffffa
push 3
call fcn.10016409
push 3
mov dword [esp + 0x28], 0xf8ee
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x10018c2b
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x224], 1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10018c18
mov dword [esp + 0x18], ebx
jmp 0x10018c4d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x184]
mov dword [eax + ecx*4], 0xe6dc660f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10018c37
inc dword [esp + 0x24]
lea ecx, [esp + 0x184]
call fcn.1001648e
mov dword [esp + 0x10], 0xca4f833f
lea ecx, [esp + 0x130]
mov dword [esp + 0x1c], 0x31aa
mov dword [esp + 0x24], 0x9403132d
push 1
call fcn.10016409
mov dword [esp + 0x18], ebx
jmp 0x10018ca2
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x190], 8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10018c8f
mov dword [esp + 0x18], ebx
jmp 0x10018cc5
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], 0xaf14186e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x10018caf
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x10018cf8
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018cf2
push 0x14d4
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call esi
dec dword [esp + 0x10]
jns 0x10018cda
cmp dword [esp + 0x198], ebx
je 0x10018d49
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xc9f1
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
cmp ecx, 0xffffffff
setge dl
add eax, 0xffff7872
add eax, edx
jne 0x10018d49
cmp dword [esp + 0x24], ebx
jne 0x10018d49
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x194]
xor edx, edx
xor esi, esi
inc esi
cmp eax, esi
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x130]
setle cl
xor edx, edx
cmp ecx, dword [eax]
lea ecx, [esp + 0x130]
mov eax, dword [esp + 0x1c]
setl dl
sub edx, eax
mov dword [esp + 0x10], edx
call fcn.1001648e
mov dword [esp + 0x14], 0x83c7730f
mov dword [esp + 0x1c], ebx
jmp 0x10018da6
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xc0], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x10018d97
mov dword [esp + 0x18], 0x5d6c05ba
mov dword [esp + 0x18], ebx
jmp 0x10018e30
mov dword [esp + 0x10], 4
mov dword [esp + 0x10], ebx
jmp 0x10018e25
mov dword [esp + 0x34], 0x307d7c11
lea ecx, [esp + 0x154]
push 4
call fcn.10016409
mov dword [esp + 0x1c], ebx
jmp 0x10018df6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x10018de4
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp eax, 0x1908040e
mov eax, dword [esp + 0x154]
setne cl
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x154]
call fcn.1001648e
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffc
je 0x10018dc8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 6
jle 0x10018dba
mov dword [esp + 0x10], 0x75b57fd5
mov dword [esp + 0x1c], 0x7b1c2a2c
mov dword [esp + 0x38], ebx
mov dword [esp + 0x38], 0x2b29949d
mov dword [esp + 0x10], ebx
jmp 0x10018eb6
mov dword [esp + 0x24], 0x5fa5fef9
mov dword [esp + 0x34], 0x425f5f99
dec dword [esp + 0x24]
mov dword [esp + 0x1c], 0xffffffe3
jmp 0x10018eab
mov dword [esp + 0x34], 0xf6fb
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10018e9f
push 0x1577
push 0x177b
push 0x2377
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffec
jle 0x10018e77
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x10
jg 0x10018e59
push 2
lea ecx, [esp + 0x164]
call fcn.10016409
push 7
mov dword [esp + 0x18], 0xfffffff7
pop eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0x338886a6
mov dword [esp + 0x1c], ebx
jmp 0x10018efa
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x10018ee8
dec dword [esp + 0x28]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
cmp eax, 0x5b0b
mov esi, dword [esp + 0x160]
setne cl
xor edx, edx
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, dword [esi + 4]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
setge cl
mov dword [esi + 4], ecx
inc edx
xor ecx, ecx
mov byte [esp + 0xf], bl
cmp edx, eax
setl cl
cmp ecx, 5
je 0x10018f6c
cmp byte [esp + 0xf], bl
je 0x10018f85
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetPropA]
jmp 0x10018f85
cmp byte [esp + 0xf], bl
je 0x10018f85
push ebx
push ebx
push 0xd15
push 0x641
push ebx
call dword [sym.imp.USER32.dll_ModifyMenuW]
lea ecx, [esp + 0x160]
call fcn.1001648e
mov dword [esp + 0x28], 0x3df75dce
xor esi, esi
mov dword [esp + 0x18], 0xfffffff7
inc esi
mov dword [esp + 0x20], 0xbe02189f
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], 0xfffffff5
jg 0x100191af
push 0xfffffffffffffffe
pop eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], 0xfffffff7
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 3
mov dword [esp + 0x34], 0x6f4ed832
mov dword [esp + 0x1c], ebx
jmp 0x10018fff
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x9c], 0xa35f394a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x10018fec
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x10019017
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [esp + 0xa0], 4
jmp 0x10019198
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x10], 0xc7a8
mov dword [esp + 0x1c], ebx
jmp 0x1001906e
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x3c], 0xff44cacf
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001905e
dec dword [esp + 0x10]
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x10019191
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
jmp 0x100190d0
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x100190cc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x3c], ecx
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], ebx
jl 0x100190c6
inc dword [esp + 0x14]
dec dword [esp + 0x20]
jns 0x100190bc
dec dword [esp + 0x1c]
jns 0x1001909e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x10019094
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x24]
jne 0x100190fe
cmp dword [esp + 0x34], ebx
jne 0x100190fe
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x10019100
mov edx, esi
mov eax, dword [esp + 0xa4]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setl cl
xor edx, edx
imul eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setg dl
cmp edx, 0xdfe1602a
jb 0x10019138
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x18], ebx
jne 0x10019151
mov eax, ebx
cmp dword [esp + 0x20], ebx
je 0x10019153
mov eax, esi
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0xfffb
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0xffffffff
setne cl
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x14], ebx
jne 0x10019181
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x3c], ebx
mov eax, ebx
je 0x10019183
mov eax, esi
mov dword [esp + 0x30], eax
dec dword [esp + 0x18]
jns 0x10019086
dec dword [esp + 0xa0]
cmp dword [esp + 0xa0], 0xffffffec
jge 0x10019027
dec dword [esp + 0x28]
jmp 0x10018fb0
mov dword [esp + 0x20], 0x2ae7b79f
mov dword [esp + 0x14], 0xf746e33a
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x18], 0xb392
mov dword [esp + 0x30], 0xe418a527
mov dword [esp + 0x24], 0xc3414b5
mov dword [esp + 0x28], ebx
jmp 0x100191f4
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x210], esi
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jl 0x100191e5
mov dword [esp + 0x10], ebx
jmp 0x1001925c
mov dword [esp + 0x24], 0x977a124
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0xfaaa
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x18]
cmp eax, 8
mov eax, dword [esp + 0x10]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
add eax, 0x383c67ee
mov dword [esp + 0x24], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff9
jne 0x10019201
mov dword [esp + 0x18], ebx
jmp 0x100192b9
mov dword [esp + 0x28], 0x39e0
mov dword [esp + 0x38], 0xaf2c9a13
mov dword [esp + 0x38], 0xe974ca77
mov dword [esp + 0x30], 0xfffb
dec dword [esp + 0x30]
mov dword [esp + 0x28], esi
cmp dword [esp + 0x28], ebx
jl 0x100192b5
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100192af
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowPlacement]
dec dword [esp + 0x28]
jns 0x10019297
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x10019269
mov dword [esp + 0x10], 0xfffffff6
lea ecx, [esp + 0x10c]
push esi
call fcn.10016409
push 3
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x240], ebx
call fcn.10016409
mov dword [esp + 0x18], ebx
jmp 0x10019305
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10c]
mov dword [eax + ecx*4], 0x3ae35568
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x100192ef
mov dword [esp + 0x18], ebx
jmp 0x10019323
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10019311
mov eax, dword [esp + 0x10c]
mov dword [eax], ebx
mov dword [esp + 0x28], 0x8ab659d5
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10019351
push 0x1714
call dword [sym.imp.USER32.dll_GetSysColorBrush]
mov dword [esp + 0x28], ebx
jmp 0x1001937b
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10019377
push 0x79b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jle 0x10019357
mov eax, dword [esp + 0x10c]
inc dword [eax]
cmp dword [eax], 2
jne 0x10019333
lea ecx, [esp + 0x1b8]
call fcn.1001648e
or dword [esp + 0x23c], 0xffffffff
lea ecx, [esp + 0x10c]
call fcn.1001648e
mov dword [esp + 0x1c], 0x752570e
lea ecx, [esp + 0x124]
push 3
call fcn.10016409
push 4
pop eax
mov dword [esp + 0x23c], esi
lea ecx, [esp + 0x148]
mov dword [esp + 0x24], eax
push eax
call fcn.10016409
mov dword [esp + 0x34], 0x64bae0f
mov dword [esp + 0x18], ebx
jmp 0x100193ff
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x78], 0xfffffffa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x100193ef
mov dword [esp + 0x18], ebx
jmp 0x10019421
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0x272b
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001940b
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001943a
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [esp + 0x78], ebx
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 8
mov eax, dword [esp + 0x24]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x148]
setle dl
add edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
sub eax, edx
neg eax
sbb eax, eax
inc eax
cmp eax, 0x555b
jge 0x1001947e
mov eax, esi
cmp dword [esp + 0x78], ebx
jne 0x10019480
mov eax, ebx
dec eax
lea ecx, [esp + 0x148]
cmp eax, 0x89480189
sbb eax, eax
neg eax
mov dword [esp + 0x34], eax
call fcn.1001648e
mov dword [esp + 0x24], 0xc507b392
mov dword [esp + 0x34], 0x592e0c80
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
jmp 0x100194c8
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x48], 0xfffffff7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x100194b8
mov dword [esp + 0x18], ebx
jmp 0x100194e7
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x124]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x100194d5
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + 0x4c]
cmp ecx, eax
mov eax, dword [esp + 0x4c]
sbb edx, edx
inc edx
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x4c]
jge 0x10019510
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x124]
push 7
pop ecx
inc dword [eax + 8]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
neg eax
cmp ecx, eax
sbb edx, edx
inc edx
imul edx, dword [esp + 0x24]
sub edx, dword [esp + 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add edx, 0x223fa3a9
cmp edx, eax
mov eax, dword [esp + 0x14]
setl cl
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
cmp edx, eax
setne cl
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], ebx
jne 0x100195a1
cmp dword [esp + 0x10], ebx
jne 0x100195a1
mov eax, ebx
cmp dword [esp + 0x24], ebx
je 0x100195a3
mov eax, esi
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
sete cl
xor edx, edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp eax, ecx
mov eax, dword [esp + 0x4c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x30]
setne cl
cmp ecx, 4
sbb esi, esi
sub eax, dword [esp + 0x4c]
xor edx, edx
inc esi
cmp eax, 1
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp esi, eax
setl cl
xor eax, eax
cmp edx, ecx
lea ecx, [esp + 0x124]
setg al
mov dword [esp + 0x20], eax
or dword [esp + 0x23c], 0xffffffff
call fcn.1001648e
mov byte [esp + 0x2f], bl
lea ecx, [esp + 0x19c]
push 1
call fcn.10016409
mov dword [esp + 0x14], 0x8094a188
mov dword [esp + 0x14], ebx
jmp 0x10019669
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x19c]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10019653
mov dword [esp + 0x14], ebx
jmp 0x100196c8
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100196c4
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x264f
push 0x323
push 0x121e
push ebx
push 0xb0d
push 0x19
call esi
push eax
call edi
push eax
push 0x1f25
push 0x12f
push 0x1bdc
push 0x14a5
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x10019676
lea ecx, [esp + 0x19c]
call fcn.1001648e
push 2
mov dword [esp + 0x38], 0xfb0b
mov dword [esp + 0x18], ebx
pop edi
jmp 0x100196fe
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1b0], 0xc1ec2db2
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100196eb
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10019721
push 0x14d4
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x118]
push 3
pop esi
mov dword [esp + 0x1b4], eax
push esi
call fcn.10016409
mov dword [esp + 0x23c], edi
lea eax, [esp + 0x204]
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10008260]
lea ecx, [esp + 0xd4]
push eax
lea eax, [esp + 0x1fc]
mov dword [esp + 0x38], 0xf0720718
push eax
push ebx
movdqu xmmword [esp + 0x204], xmm0
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
call fcn.10017aee
mov dword [esp + 0x24], 0xf2ba167c
or edi, 0xffffffff
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], ebx
jmp 0x100197c1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 0xde713a47
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100197ab
mov ecx, dword [esp + 0x118]
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0xd0]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov eax, dword [ecx + 4]
lea ecx, [esp + 0xd0]
add eax, 0x4f78
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
call fcn.1001648e
lea ecx, [esp + 0x118]
mov dword [esp + 0x23c], edi
call fcn.1001648e
cmp byte [esp + 0x2f], 0
je 0x1001992b
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], 0x275ff444
mov dword [esp + 0x30], 0x7c71
mov dword [esp + 0x34], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x100198f7
cmp dword [esp + 0x10], 0xa
jg 0x1001984e
mov dword [esp + 0x20], 0x51cfd1f2
lea ecx, [esp + 0x100]
mov dword [esp + 0x10], 0xbd3aeb59
mov dword [esp + 0x28], 0xce1a812c
push 4
call fcn.10016409
mov dword [esp + 0x23c], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], 0x17e5ed53
mov dword [esp + 0x38], 0xfffffff6
mov dword [esp + 0x14], ebx
jmp 0x10019988
cmp dword [esp + 0x14], 4
jl 0x10019976