Function at 0x406169
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2fc
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov esi, dword [eax]
xor eax, eax
cmp dword [0x42dba4], eax
mov dword [ebp - 4], eax
mov dword [0x42cbf4], eax
je 0x40619f
cmp byte [0x42d240], al
jne 0x40619f
push 0x42dba8
call fcn.00409481
pop ecx
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.004060d0
pop ecx
cmp eax, 2
push 1
je 0x406483
pop edi
cmp eax, edi
jne 0x40648c
cmp dword [ebp + 0x14], 0
je 0x406493
cmp dword [0x42db9c], edi
je 0x40658f
cmp dword [ebp + 0x20], 2
je 0x40658f
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 1
je 0x4061fe
cmp dword [0x42dba0], 0
jne 0x4061fb
cmp dword [ebp + 0x20], 0
je 0x40658f
mov dword [ebp - 4], edi
mov eax, dword [0x42db9c]
test eax, eax
jle 0x4062ed
cmp dword [ebp + 0x20], 0
jne 0x4062ed
test esi, esi
jne 0x4062ed
cmp eax, 2
je 0x40626c
cmp eax, 4
je 0x40626c
cmp dword [0x42e4a8], esi
jne 0x406545
cmp dword [ebp - 4], esi
push dword [0x42b5c0]
mov dword [0x42b548], ebx
je 0x406248
push 2
jmp 0x406249
push edi
call fcn.0040fa42
pop ecx
cmp eax, 7
pop ecx
je 0x40658f
cmp eax, 0x67
jne 0x4062e4
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
jmp 0x4062ed
push ebx
push dword [ebp + 8]
call fcn.00405ee8
pop ecx
test eax, eax
pop ecx
je 0x406284
mov eax, edi
mov dword [0x42cbf4], eax
jmp 0x4062a5
push ebx
push dword [ebp + 8]
call fcn.00405fff
pop ecx
test eax, eax
pop ecx
je 0x40629c
mov eax, edi
mov dword [0x42cbf4], eax
jmp 0x4062a1
mov eax, dword [0x42cbf4]
test eax, eax
je 0x4062b6
cmp dword [0x42db9c], 2
je 0x40658f
test eax, eax
jne 0x4062bc
cmp dword [ebp - 4], 0
je 0x4062ed
cmp dword [0x42e4a8], 0
jne 0x406545
push dword [0x42b5c0]
mov dword [0x42b548], ebx
test eax, eax
je 0x406244
push 3
jmp 0x406249
cmp eax, 2
je 0x40653f
cmp dword [0x42dba4], 0
je 0x4063be
push 0x5c
push ebx
call fcn.0041bb00
cmp dword [0x42b568], 0
pop ecx
pop ecx
mov edi, eax
mov esi, 0x42d240
jne 0x40634f
push esi
call fcn.00405d65
test eax, eax
pop ecx
jne 0x406345
cmp dword [0x42e4a8], eax
jne 0x406545
mov dword [0x42b548], esi
push dword [0x42b5c0]
push 4
call fcn.0040fa42
pop ecx
pop ecx
jmp 0x406545
mov dword [0x42b568], 1
lea eax, [ebp - 0x2fc]
push esi
push eax
call fcn.0041bb30
pop ecx
test edi, edi
pop ecx
je 0x406384
inc edi
lea eax, [ebp - 0x2fc]
push edi
push eax
call fcn.00405453
lea eax, [ebp - 0x2fc]
push eax
push ebx
call fcn.00404d6e
add esp, 0x10
test eax, eax
jne 0x4063be
cmp dword [0x42e4a8], 0
jne 0x406545
push dword [0x42b5c0]
mov dword [0x42b548], ebx
push 0xb
call fcn.0040fa42
pop ecx
cmp eax, 2
pop ecx
jne 0x406545
mov dword [0x42ab7c], 1
jmp 0x406545
push ebx
call fcn.004060a6
test eax, eax
pop ecx
je 0x406489
cmp dword [0x42b518], 0
push dword [ebp + 8]
jne 0x406402
call fcn.0041c080
push ebx
mov esi, eax
call fcn.0041c080
lea eax, [esi + eax + 3]
push eax
mov dword [0x42b52c], eax
call fcn.0041b1a2
add esp, 0xc
mov dword [0x42b518], eax
and byte [eax], 0
jmp 0x406432
call fcn.0041c080
push ebx
mov esi, eax
call fcn.0041c080
add eax, dword [0x42b52c]
lea eax, [eax + esi + 3]
push eax
mov dword [0x42b52c], eax
push dword [0x42b518]
call fcn.0041c18f
add esp, 0x10
mov dword [0x42b518], eax
push dword [ebp + 8]
push dword [0x42b518]
call fcn.0041bb40
push 0x427370
push dword [0x42b518]
call fcn.0041bb40
push ebx
push dword [0x42b518]
call fcn.0041bb40
push 0x4275f0
push dword [0x42b518]
call fcn.0041bb40
add esp, 0x20
cmp dword [ebp + 0x18], 0
je 0x406481
push dword [ebp + 0x1c]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 1
pop eax
jmp 0x406591
push 1
pop edi
xor esi, esi
cmp dword [ebp + 0x14], esi
jne 0x4064c0
push ebx
call fcn.004060a6
test eax, eax
pop ecx
je 0x4064be
cmp dword [0x42e4a8], 0
jne 0x406545
push dword [0x42b5c0]
mov dword [0x42b548], ebx
push 5
jmp 0x406339
xor esi, esi
lea eax, [ebp - 0x108]
push ebx
push eax
call fcn.0041bb30
lea eax, [ebp - 0x108]
push 0x5c
push eax
call fcn.0041bb00
add esp, 0x10
cmp eax, esi
je 0x4064e5
and byte [eax], 0
lea eax, [ebp - 0x108]
push eax
call fcn.00405d65
test eax, eax
pop ecx
jne 0x40650e
cmp dword [0x42e4a8], esi
jne 0x406545
lea eax, [ebp - 0x108]
mov dword [0x42b548], eax
jmp 0x406331
push ebx
push dword [ebp + 8]
call fcn.00404d6e
pop ecx
test eax, eax
pop ecx
jne 0x406549
cmp dword [0x42e4a8], esi
jne 0x406545
push dword [0x42b5c0]
mov dword [0x42b548], ebx
push 0xb
call fcn.0040fa42
pop ecx
cmp eax, 2
pop ecx
jne 0x406545
mov dword [0x42ab7c], edi
xor eax, eax
jmp 0x406591
cmp dword [ebp + 0x18], esi
je 0x406558
push dword [ebp + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [ebp + 8]
call fcn.00404c94
test eax, eax
jne 0x40658f
cmp dword [0x42dfdc], esi
je 0x406575
cmp dword [0x42dfe0], 3
je 0x406586
cmp dword [0x42e2f4], esi
je 0x40658f
cmp byte [0x42e2f8], 0
je 0x40658f
push dword [ebp + 8]
call fcn.0041c055
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret