Function at 0x409f70
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x40cc
call fcn.0045cf20
mov eax, dword [0x48e110]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
mov dword [ebp - 0x4044], eax
mov eax, dword [ebp + 0xc]
push SysReAllocStringLen
mov esi, ecx
push eax
mov dword [ebp - 0x4070], esi
xor ebx, ebx
mov dword [ebp - 0x4058], edi
mov dword [ebp - 0x4050], 0x4044f0
mov dword [ebp - 0x404c], 0x4044d0
mov dword [ebp - 0x4060], 0x4044f0
mov dword [ebp - 0x405c], 0x4044d0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x4064], eax
cmp eax, 0xffffffff
jne 0x40a000
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x40a439
lea ecx, [ebp - 0x406c]
mov dword [ebp - 0x406c], 0x4053d0
mov dword [ebp - 0x4068], 0x405400
mov dword [ebp - 0x4028], 0x407b50
mov dword [ebp - 0x4024], 0x407bb0
mov dword [ebp - 0x4020], 0x407bc0
mov dword [ebp - 0x401c], 0x407c20
mov dword [ebp - 0x4018], ecx
mov dword [ebp - 0x4010], edi
mov dword [ebp - 0x4014], edi
call fcn.00404560
lea edx, [ebp - 0x4028]
push edx
lea eax, [ebp - 0x40c8]
push eax
lea edx, [ebp - 0x4060]
lea ecx, [ebp - 0x4050]
mov dword [ebp - 0x40c8], edi
mov dword [ebp - 0x40c4], edi
mov dword [ebp - 0x40c0], edi
mov dword [ebp - 0x40bc], edi
mov dword [ebp - 0x40b8], edi
mov dword [ebp - 0x40b4], edi
mov dword [ebp - 0x40b0], edi
mov dword [ebp - 0x40ac], edi
mov dword [ebp - 0x4098], edi
mov dword [ebp - 0x4094], edi
mov dword [ebp - 0x4090], edi
mov dword [ebp - 0x408c], edi
mov dword [ebp - 0x4088], edi
mov dword [ebp - 0x4084], edi
mov dword [ebp - 0x4080], edi
call fcn.004074e0
add esp, 8
mov dword [ebp - 0x4034], eax
cmp eax, edi
je 0x40a0f8
lea edi, [ebp - 0x4050]
lea eax, [ebp - 0x40c8]
call fcn.004055f0
mov eax, dword [ebp - 0x4034]
xor edi, edi
mov dword [ebp - 0x402c], eax
cmp eax, edi
jne 0x40a3bf
xor eax, eax
mov dword [ebp - 0x4078], 0xffffffff
mov dword [ebp - 0x4048], edi
mov dword [ebp - 0x4074], edi
mov dword [ebp - 0x4030], eax
cmp dword [ebp - 0x40ac], edi
jbe 0x40a3a8
mov ecx, eax
shl ecx, 5
add ecx, dword [ebp - 0x40b8]
mov dword [ebp - 0x4054], edi
mov dword [ebp - 0x403c], edi
mov dword [ebp - 0x4040], ecx
cmp esi, edi
je 0x40a169
mov edx, dword [esi + 4]
mov eax, dword [esi]
lea ecx, [ebp - 0x4030]
push ecx
push edx
call eax
mov eax, dword [ebp - 0x4030]
add esp, 8
mov esi, dword [ebp - 0x4088]
mov edi, dword [esi + eax*4 + 4]
sub edi, dword [esi + eax*4]
cmp edi, dword [ebp - 0x4058]
jbe 0x40a1ae
push ebx
call fcn.0045a200
add esp, 4
mov dword [ebp - 0x4058], edi
add edi, edi
je 0x40a390
push edi
call fcn.0045a16c
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40a392
mov eax, dword [ebp - 0x4030]
mov edx, dword [esi + eax*4]
mov ecx, dword [esi + eax*4 + 4]
sub ecx, edx
test ebx, ebx
je 0x40a1e3
mov esi, dword [ebp - 0x4084]
lea edx, [esi + edx*2]
test ecx, ecx
je 0x40a1e3
mov eax, ebx
sub edx, ebx
lea esp, [esp]
mov si, word [edx + eax]
mov word [eax], si
add eax, 2
dec ecx
jne 0x40a1d0
mov eax, dword [ebp - 0x4030]
mov ecx, dword [ebp - 0x4040]
cmp byte [ecx + 0x19], 0
je 0x40a1fe
push 0x476ce4
call fcn.0045ae61
add esp, 4
jmp 0x40a253
lea edx, [ebp - 0x4060]
push edx
lea ecx, [ebp - 0x4050]
push ecx
lea edx, [ebp - 0x403c]
push edx
lea ecx, [ebp - 0x4054]
push ecx
lea edx, [ebp - 0x4074]
push edx
lea ecx, [ebp - 0x4048]
push ecx
lea edx, [ebp - 0x4078]
push edx
push eax
lea eax, [ebp - 0x4028]
push eax
lea eax, [ebp - 0x40c8]
call fcn.004078b0
add esp, 0x24
mov dword [ebp - 0x402c], eax
test eax, eax
jne 0x40a3a8
xor edi, edi
cmp word [ebx], di
je 0x40a28d
mov esi, ebx
lea esp, [esp]
cmp word [esi], 0x2f
jne 0x40a282
xor ecx, ecx
mov word [esi], cx
mov ecx, dword [ebp - 0x4044]
push ebx
call fcn.00409d30
mov edx, 0x5c
add esp, 4
mov word [esi], dx
inc edi
cmp word [ebx + edi*2], 0
lea esi, [ebx + edi*2]
jne 0x40a260
mov eax, dword [ebp - 0x4040]
cmp byte [eax + 0x19], 0
je 0x40a2ad
mov ecx, dword [ebp - 0x4044]
push ebx
call fcn.00409d30
add esp, 4
jmp 0x40a355
lea ecx, [ebp - 0x4038]
push ecx
mov ecx, dword [ebp - 0x4044]
mov edx, ebx
call fcn.00409e50
add esp, 4
test eax, eax
je 0x40a2d7
mov dword [ebp - 0x402c], 0xb
jmp 0x40a362
mov edx, dword [ebp - 0x403c]
mov eax, dword [ebp - 0x4054]
add eax, dword [ebp - 0x4048]
mov dword [ebp - 0x4034], edx
lea edx, [ebp - 0x4038]
push edx
lea edi, [ebp - 0x4034]
call fcn.004052c0
add esp, 4
test eax, eax
jne 0x40a39e
mov eax, dword [ebp - 0x403c]
cmp dword [ebp - 0x4034], eax
jne 0x40a39e
mov eax, dword [ebp - 0x4038]
cmp eax, 0xffffffff
je 0x40a33e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x40a384
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40a39e
mov eax, dword [ebp - 0x4040]
cmp byte [eax + 0x1d], 0
je 0x40a355
mov ecx, dword [eax + 0x14]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x476ce8
call fcn.0045ae61
add esp, 4
mov eax, dword [ebp - 0x4030]
inc eax
mov dword [ebp - 0x4030], eax
cmp eax, dword [ebp - 0x40ac]
jae 0x40a3a8
mov esi, dword [ebp - 0x4070]
xor edi, edi
jmp 0x40a130
mov dword [ebp - 0x4038], 0xffffffff
jmp 0x40a33e
xor ebx, ebx
mov dword [ebp - 0x402c], 2
jmp 0x40a3a8
mov dword [ebp - 0x402c], 0xb
mov edx, dword [ebp - 0x4048]
push edx
lea eax, [ebp - 0x4050]
push eax
call dword [ebp - 0x404c]
add esp, 8
lea edi, [ebp - 0x4050]
lea eax, [ebp - 0x40c8]
call fcn.004055f0
push ebx
call fcn.0045a200
mov eax, dword [ebp - 0x4064]
add esp, 4
cmp eax, 0xffffffff
je 0x40a401
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x40a3f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40a401
mov dword [ebp - 0x4064], 0xffffffff
mov eax, dword [ebp - 0x402c]
test eax, eax
jne 0x40a41c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045a10c
mov esp, ebp
pop ebp
ret
cmp eax, 4
je 0x40a439
cmp eax, 2
je 0x40a439
cmp eax, 3
je 0x40a439
push eax
push 0x476cec
call fcn.0045ae61
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.0045a10c
mov esp, ebp
pop ebp
ret