Function at 0x417220
Capabilities:
Delete file
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x457c93
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x46be4c]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x46be4c]
xor eax, esp
push eax
lea eax, [esp + 0x270]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x280]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
call fcn.004048c0
test ebp, ebp
mov dword [esp + 0x44], eax
jne 0x417282
xor eax, eax
jmp 0x4179e8
push 0x104
lea eax, [esp + 0x16c]
push 0
push eax
call fcn.004413c0
mov ecx, dword [ebp + 8]
add esp, 0xc
lea ebx, [esp + 0x168]
call fcn.0040e260
lea ecx, [esp + 0x30]
call fcn.004306c2
xor ebx, ebx
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x280], ebx
call fcn.0043081b
mov esi, dword [ebp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push esi
call edi
test eax, eax
je 0x4172f3
mov ecx, dword [esp + 0x38]
push esi
push ecx
lea ecx, [esp + 0x38]
call fcn.00430da4
push esi
call edi
lea esi, [esi + eax + 1]
push esi
call edi
test eax, eax
jne 0x4172d6
call fcn.004317f7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41730d
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x14]
cmp ecx, ebx
mov byte [esp + 0x278], 1
jne 0x417330
xor eax, eax
jmp 0x417340
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x417335
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401bc0
mov esi, dword [esp + 0x14]
push 0x5c
push esi
call fcn.00440e55
add esp, 8
cmp eax, ebx
jne 0x417363
or ecx, 0xffffffff
jmp 0x417367
sub eax, esi
mov ecx, eax
mov eax, dword [esi - 0xc]
add ecx, 1
sub eax, ecx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004072d0
mov edx, dword [esp + 0x38]
push eax
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x280], 2
call fcn.00430be6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x278], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4173bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp + 0x10]
cmp edx, ebx
jne 0x4173c8
xor eax, eax
jmp 0x4173db
mov eax, edx
lea esi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4173d0
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x1c]
call fcn.00401bc0
mov esi, dword [esp + 0x14]
push 0x5c
push esi
call fcn.00440e55
add esp, 8
cmp eax, ebx
jne 0x4173fe
or ecx, 0xffffffff
jmp 0x417402
sub eax, esi
mov ecx, eax
mov eax, dword [esi - 0xc]
add ecx, 1
sub eax, ecx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004072d0
mov edx, dword [esp + 0x38]
push eax
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x280], 3
call fcn.00430be6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x278], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417458
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp + 0x18]
cmp edx, ebx
jne 0x417463
xor eax, eax
jmp 0x417473
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x417468
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x1c]
call fcn.00401bc0
mov esi, dword [esp + 0x14]
push 0x5c
push esi
call fcn.00440e55
add esp, 8
cmp eax, ebx
jne 0x417496
or ecx, 0xffffffff
jmp 0x41749a
sub eax, esi
mov ecx, eax
mov eax, dword [esi - 0xc]
add ecx, 1
sub eax, ecx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004072d0
mov edx, dword [esp + 0x38]
push eax
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x280], 4
call fcn.00430be6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x278], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp + 0xc]
cmp edx, ebx
jne 0x4174fb
xor eax, eax
jmp 0x41750b
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x417500
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x1c]
call fcn.00401bc0
mov esi, dword [esp + 0x14]
push 0x5c
push esi
call fcn.00440e55
add esp, 8
cmp eax, ebx
jne 0x41752e
or ecx, 0xffffffff
jmp 0x417532
sub eax, esi
mov ecx, eax
mov eax, dword [esi - 0xc]
add ecx, 1
sub eax, ecx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004072d0
mov edx, dword [esp + 0x38]
push eax
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x280], 5
call fcn.00430be6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x278], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417588
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x38]
cmp ecx, ebx
mov dword [esp + 0x24], ebx
jle 0x4179ac
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
mov edi, edi
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x417a10
cmp eax, ecx
jge 0x417a10
mov ecx, dword [esp + 0x34]
mov edx, eax
mov eax, dword [ecx + edx*4]
sub eax, 0x10
push eax
call fcn.004015c0
lea edi, [eax + 0x10]
mov dword [esp + 0x20], edi
push 0x5c
push edi
mov byte [esp + 0x284], 6
call fcn.00440e55
add esp, 0xc
test eax, eax
jne 0x4175e9
or ebx, 0xffffffff
jmp 0x4175ed
sub eax, edi
mov ebx, eax
lea esi, [esp + 0x168]
lea eax, [esp + 0x168]
sub esi, 1
push eax
add ebx, 1
mov dword [esp + 0x1c], esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + esi], 0x5c
mov eax, dword [edi - 0xc]
jne 0x417643
sub eax, ebx
push eax
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x24]
call fcn.004072d0
mov edx, dword [eax]
push edx
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x6c]
push 0x45ccb8
push ecx
call ebp
mov eax, dword [esp + 0x58]
jmp 0x41766f
sub eax, ebx
push eax
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x24]
call fcn.004072d0
mov edx, dword [eax]
push edx
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x6c]
push 0x45ce28
push ecx
call ebp
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
add esp, 0x10
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41768e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
push ecx
push edi
call fcn.0040e330
add esp, 8
test eax, eax
jne 0x41796d
push 0x20
lea edx, [esp + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
mov dword [esp + 0x2c], eax
jne case.0x4176d9.4
call dword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 0xfffffffe
cmp eax, 0x1e
ja case.0x4176d9.4
movzx ecx, byte [eax + 0x417a20]
jmp dword [ecx*4 + 0x417a18]
mov dword [esp + 0x2c], 1
mov esi, dword [esp + 0x44]
cmp esi, 5
je 0x4176ff
cmp esi, 6
je 0x4176ff
cmp esi, 0xa
jne 0x4177e2
lea edx, [esp + 0x168]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
cmp byte [eax + ecx], 0x5c
je 0x41775d
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov esi, eax
sub esi, 0x400
neg esi
sbb esi, esi
and esi, eax
mov eax, dword [edi - 0xc]
sub eax, ebx
push eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x24]
call fcn.004072d0
mov ecx, dword [eax]
push ecx
push esi
lea edx, [esp + 0x170]
push edx
lea eax, [esp + 0x70]
push str._s_d_s
push eax
call ebp
mov eax, dword [esp + 0x70]
jmp 0x4177a1
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov esi, eax
sub esi, 0x400
neg esi
sbb esi, esi
and esi, eax
mov eax, dword [edi - 0xc]
sub eax, ebx
push eax
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x24]
call fcn.004072d0
mov eax, dword [eax]
push eax
push esi
lea ecx, [esp + 0x170]
push ecx
lea edx, [esp + 0x70]
push 0x45dc90
push edx
call ebp
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
add esp, 0x14
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4177c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x20
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea edx, [esp + 0x64]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x44]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x24]
call fcn.004027b0
push 3
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x28]
mov byte [esp + 0x280], 7
call fcn.004072d0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x27c], 8
call fcn.00402020
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
mov byte [esp + 0x278], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417842
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
push 0x45dc8c
push ecx
call fcn.00440d82
add esp, 8
test eax, eax
je 0x417872
mov edx, dword [esp + 0x20]
push 0x45dc88
push edx
call fcn.00440d82
add esp, 8
test eax, eax
jne 0x417945
cmp esi, 2
je 0x417880
cmp esi, 3
jne 0x417938
lea eax, [esp + 0x168]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
cmp byte [eax + ecx], 0x5c
mov eax, dword [edi - 0xc]
je 0x4178dc
sub eax, ebx
push eax
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x24]
call fcn.004072d0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x16c]
push ecx
lea edx, [esp + 0x6c]
push str._sCOLOR_s
push edx
call ebp
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41791b
sub eax, ebx
push eax
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x24]
call fcn.004072d0
mov edx, dword [eax]
push edx
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x6c]
push 0x45dc70
push ecx
call ebp
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417927
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x64]
push edx
call fcn.00416e70
add esp, 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x278], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41796d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 0xfffffff0
mov byte [esp + 0x278], 1
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417991
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x4175a0
mov esi, dword [esp + 0x14]
lea eax, [esi - 0x10]
mov byte [esp + 0x278], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4179d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x278], 0xffffffff
call fcn.00430a6d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x270]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x258]
xor ecx, esp
call fcn.0044027a
add esp, 0x268
ret
jmp fcn.00430460