Function at 0x406580
Capabilities:
Set file attributes

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4311e1
push eax
mov eax, 0x10054
mov dword fs:[0], esp
call fcn.004138b0
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x1006c], ebx
call fcn.00423482
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1006c], 1
call fcn.00423482
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1006c], 2
call fcn.00424319
mov eax, dword [0x44169c]
mov dword [esp + 0x2c], eax
push ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0x10070], 4
mov dword [esp + 0x20], vtable.CFileException.0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0xffffffff
call fcn.00423f0e
mov ecx, dword [esp + 0x10074]
mov byte [esp + 0x1006c], 5
push ecx
push 0x43fbfc
call fcn.004089b0
add esp, 8
lea edx, [esp + 0x60]
mov ecx, esi
push 4
push edx
call fcn.004077b0
lea eax, [esp + 0x5c]
push 4
push eax
mov ecx, esi
call fcn.004077b0
mov edx, dword [esp + 0x10074]
lea ecx, [esp + 0x1c]
push ecx
push 0x10
push edx
lea ecx, [esp + 0x44]
call fcn.00423594
test eax, eax
jne 0x4066c4
push 0x14
call fcn.00423ac6
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
cmp esi, ebx
mov byte [esp + 0x1006c], 6
je 0x4066a7
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x10074]
push eax
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x43f2e0
push edx
push ecx
call fcn.0042401a
mov ecx, esi
call fcn.00403810
jmp 0x4066a9
xor eax, eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push 0x439070
push eax
mov byte [esp + 0x10074], 5
call fcn.0041381a
lea ecx, [esp + 0x38]
call fcn.0042388e
mov edi, eax
mov dword [esi + 0x80], ebx
cmp edi, ebx
mov dword [esi + 0x84], edi
jle 0x406721
mov al, byte [0x465739]
test al, al
jne 0x406782
cmp edi, 0x10000
mov ebp, 0x10000
jg 0x4066fb
mov ebp, edi
lea ecx, [esp + 0x64]
push ebp
push ecx
lea ecx, [esp + 0x40]
call fcn.004236b1
push ebx
lea edx, [esp + 0x68]
push ebp
push edx
call fcn.00407ec0
sub edi, ebp
add esp, 0xc
test edi, edi
mov ebx, eax
jg 0x4066df
cmp dword [esp + 0x60], ebx
je 0x406833
push str..exe
lea ecx, [esp + 0x10078]
call fcn.0042282c
cmp eax, 0xffffffff
push 0x14
jne 0x4067b4
call fcn.00423ac6
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
test esi, esi
mov byte [esp + 0x1006c], 8
je 0x406797
push 0
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
lea ecx, [esp + 0x1007c]
push 0x43f2c8
push ecx
push eax
call fcn.0042401a
mov ecx, esi
call fcn.00403790
jmp 0x406799
mov dword [esp + 0x1c], vtable.CFileException.0
mov byte [esp + 0x1006c], 7
jmp 0x406ba8
xor eax, eax
lea edx, [esp + 0x14]
push 0x439070
push edx
mov byte [esp + 0x10074], 5
mov dword [esp + 0x1c], eax
call fcn.0041381a
call fcn.00423ac6
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
test esi, esi
mov byte [esp + 0x1006c], 9
je 0x406813
push 0
lea eax, [esp + 0x10078]
push 0x43f2c8
lea ecx, [esp + 0x50]
push eax
push ecx
call fcn.0042401a
mov dword [esp + 0x18], 1
push ecx
mov byte [esp + 0x10074], 0xa
mov edx, esp
mov dword [esp + 0x3c], esp
push 0x43f298
push eax
push edx
call fcn.0042401a
mov ecx, esi
call fcn.00403790
jmp 0x406815
xor eax, eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push 0x439070
push eax
mov dword [esp + 0x10074], 0xb
call fcn.0041381a
push 0x43fbe4
call fcn.004089b0
mov ebx, dword [esi + 0x5c]
mov ecx, dword [esi + 0x20]
add esp, 4
inc ebx
mov eax, ebx
lea edx, [esp + 0x10074]
push eax
push ecx
push str._s_05d.tmp
push edx
mov dword [esi + 0x5c], ebx
call fcn.00422bb2
mov eax, dword [esp + 0x10084]
add esp, 0x10
push eax
push 0x43fba4
call fcn.004089b0
mov ecx, dword [esp + 0x1007c]
add esp, 8
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [esp + 0x10074]
lea edx, [esp + 0x1c]
push edx
push 0x1011
push eax
lea ecx, [esp + 0x58]
call fcn.00423594
test eax, eax
jne 0x40690d
push 0x14
call fcn.00423ac6
mov esi, eax
add esp, 4
mov dword [esp + 0x34], esi
test esi, esi
mov byte [esp + 0x1006c], 0xc
je 0x4068f0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x10074]
push ecx
push 1
push ecx
mov edx, esp
mov dword [esp + 0x54], esp
push 0x43f2e0
push eax
push edx
call fcn.0042401a
mov ecx, esi
call fcn.00403810
jmp 0x4068f2
xor eax, eax
lea ecx, [esp + 0x10]
push 0x439070
push ecx
mov byte [esp + 0x10074], 5
mov dword [esp + 0x18], eax
call fcn.0041381a
xor ebx, ebx
lea edx, [esp + 0x30]
push 4
push edx
mov ecx, esi
call fcn.004077b0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x406afe
mov ecx, eax
and ecx, 0xc0000000
cmp ecx, 0xc0000000
jne 0x4069b4
mov edi, eax
shr edi, 8
and edi, 0x3fffff
xor ecx, ecx
cmp ecx, edi
jge 0x406957
mov byte [esp + ecx + 0x64], al
inc ecx
cmp ecx, 0x1000
jl 0x406946
test edi, edi
jle 0x40690f
mov al, byte [0x465739]
test al, al
jne 0x406abf
cmp edi, 0x1000
mov ebp, 0x1000
jg 0x406977
mov ebp, edi
mov edx, dword [esi + 0x80]
push ebp
add edx, ebp
lea ecx, [esp + 0x50]
mov dword [esi + 0x80], edx
lea edx, [esp + 0x68]
push edx
call fcn.004236eb
push ebx
lea eax, [esp + 0x68]
push ebp
push eax
call fcn.00407ec0
sub edi, 0x1000
add esp, 0xc
test edi, edi
mov ebx, eax
jg 0x40695b
jmp 0x40690f
mov ecx, eax
and ecx, 0x80000000
cmp ecx, 0x80000000
jne 0x406a33
and eax, 0x7fffffff
mov ebp, eax
jle 0x40690f
mov al, byte [0x465739]
test al, al
jne 0x406ad4
cmp ebp, 0x10000
mov edi, 0x10000
jg 0x4069ed
mov edi, ebp
mov eax, dword [esi + 0x80]
lea edx, [esp + 0x64]
add eax, edi
push edi
push edx
mov ecx, esi
mov dword [esi + 0x80], eax
call fcn.004077b0
lea eax, [esp + 0x64]
push edi
push eax
lea ecx, [esp + 0x54]
call fcn.004236eb
push ebx
lea ecx, [esp + 0x68]
push edi
push ecx
call fcn.00407ec0
sub ebp, edi
add esp, 0xc
test ebp, ebp
mov ebx, eax
jg 0x4069d1
jmp 0x40690f
lea edx, [esp + 0x30]
push 4
push edx
mov ecx, esi
mov ebp, eax
call fcn.004077b0
mov eax, dword [esp + 0x30]
push 0
push eax
lea ecx, [esp + 0x40]
call fcn.00423736
test ebp, ebp
jle 0x40690f
mov al, byte [0x465739]
test al, al
jne 0x406ae9
cmp ebp, 0x10000
mov edi, 0x10000
jg 0x406a77
mov edi, ebp
mov ecx, dword [esi + 0x80]
push edi
add ecx, edi
mov dword [esi + 0x80], ecx
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x40]
call fcn.004236b1
lea edx, [esp + 0x64]
push edi
push edx
lea ecx, [esp + 0x54]
call fcn.004236eb
push ebx
lea eax, [esp + 0x68]
push edi
push eax
call fcn.00407ec0
sub ebp, edi
add esp, 0xc
test ebp, ebp
mov ebx, eax
jg 0x406a5b
jmp 0x40690f
mov dword [esp + 0x1c], vtable.CFileException.0
mov byte [esp + 0x1006c], 0xd
jmp 0x406ba8
mov dword [esp + 0x1c], vtable.CFileException.0
mov byte [esp + 0x1006c], 0xe
jmp 0x406ba8
mov dword [esp + 0x1c], vtable.CFileException.0
mov byte [esp + 0x1006c], 0xf
jmp 0x406ba8
cmp dword [esp + 0x5c], ebx
je 0x406b7c
push 0x14
call fcn.00423ac6
mov esi, eax
add esp, 4
mov dword [esp + 0x34], esi
test esi, esi
mov byte [esp + 0x1006c], 0x10
je 0x406b5c
lea ecx, [esp + 0x48]
push 0
push ecx
lea ecx, [esp + 0x40]
call fcn.00424761
mov dword [esp + 0x18], 2
push ecx
mov byte [esp + 0x10074], 0x11
mov edx, esp
mov dword [esp + 0x20], esp
push 0x43f2c8
push eax
push edx
call fcn.0042401a
mov ecx, esi
call fcn.00403790
jmp 0x406b5e
xor eax, eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push 0x439070
push eax
mov dword [esp + 0x10074], 0x12
call fcn.0041381a
mov edx, dword [0x46573c]
push 0x43fbd0
add edx, 2
mov dword [0x46573c], edx
call fcn.004089b0
add esp, 4
mov dword [esp + 0x1c], vtable.CFileException.0
mov byte [esp + 0x1006c], 0x13
lea ecx, [esp + 0x2c]
call fcn.00423d85
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1006c], 1
call fcn.004234d7
lea ecx, [esp + 0x38]
mov byte [esp + 0x1006c], 0
call fcn.004234d7
lea ecx, [esp + 0x10074]
mov dword [esp + 0x1006c], 0xffffffff
call fcn.00423d85
mov ecx, dword [esp + 0x10064]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x10060
ret 4