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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x411086
push eax
mov eax, dword [0x447e08]
mov dword fs:[0], esp
sub esp, 0x82c
test eax, eax
push ebp
push esi
push edi
jne 0x4034ef
or eax, 0xffffffff
jmp 0x40373a
mov esi, dword [esp + 0x848]
push esi
call fcn.00402610
add esp, 4
test eax, eax
jne 0x403738
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ebp, eax
push 0x80
push esi
mov dword [esp + 0x28], ebp
call edi
push esi
call fcn.00402bd0
add esp, 4
test al, al
jne 0x40353b
push ebp
push esi
call edi
or eax, 0xffffffff
jmp 0x40373a
mov al, byte [esp + 0xf]
push ebx
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00404fb0
push 0x4144a4
push esi
mov dword [esp + 0x84c], 0
call fcn.0040710f
mov ebx, eax
add esp, 8
mov dword [esp + 0x38], ebx
test byte [ebx + 0xc], 0x10
jne 0x403692
push ebx
lea ecx, [esp + 0x40]
push 0x800
push ecx
mov byte [esp + 0x48], 0
call fcn.00407fc0
lea edx, [esp + 0x48]
push edx
call fcn.004079fa
lea eax, [esp + 0x4c]
push str.__body_
push eax
call fcn.00407984
mov ebp, eax
lea ecx, [esp + 0x54]
add esp, 0x18
sub ebp, ecx
jns 0x4035d5
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004053c0
jmp 0x40367e
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00404fb0
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x2c]
push ebx
call fcn.00405540
test al, al
je 0x403631
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
call fcn.00405520
mov esi, dword [esp + 0x84c]
mov eax, dword [0x4121ec]
lea ecx, [esp + 0x28]
push eax
push 0
push 0x447e00
push ebp
mov byte [esp + 0x854], 1
call fcn.00404e10
mov ecx, dword [0x4121ec]
lea edx, [esp + 0x28]
push ecx
push 0
push edx
lea ecx, [esp + 0x20]
call fcn.004052e0
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x848], 0
call fcn.00404fb0
mov ebx, dword [esp + 0x38]
test byte [ebx + 0xc], 0x10
je 0x403578
mov ebp, dword [esp + 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push ebx
call fcn.00406f8f
mov eax, dword [esp + 0x20]
add esp, 4
test eax, eax
pop ebx
jne 0x4036d4
push ebp
push esi
call edi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4036cf
mov al, byte [ecx - 1]
test al, al
je 0x4036c5
cmp al, 0xff
je 0x4036c5
dec al
mov byte [ecx - 1], al
or eax, 0xffffffff
jmp 0x40373a
dec ecx
push ecx
call fcn.00406b20
add esp, 4
or eax, 0xffffffff
jmp 0x40373a
push 0x41463c
push esi
call fcn.0040710f
mov edi, eax
add esp, 8
test edi, edi
je 0x40370c
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4036f5
mov eax, 0x4121e8
mov ecx, dword [esp + 0x18]
push edi
push ecx
push 1
push eax
call fcn.00406fe5
push edi
call fcn.00406f8f
add esp, 0x14
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x403738
mov al, byte [ecx - 1]
test al, al
je 0x40372e
cmp al, 0xff
je 0x40372e
dec al
mov byte [ecx - 1], al
jmp 0x403738
dec ecx
push ecx
call fcn.00406b20
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x838]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x838
ret