Function at 0x4109d0
Capabilities:
Set file attributes

Disassembly:
sub esp, 0x110
mov eax, dword [0x429258]
push ebx
push ebp
xor ebp, ebp
xor ebx, ebx
push esi
mov esi, dword [esp + 0x120]
cmp eax, ebp
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
je 0x410a00
cmp esi, ebp
mov dword [0x4292cc], ebp
je 0x410a0a
mov dword [0x4292cc], 1
mov edi, 0x439c08
or ecx, 0xffffffff
xor eax, eax
mov dword [0x439d94], ebp
mov dword [0x439d98], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ebp
mov dword [0x439d9c], ecx
je 0x410afe
mov ecx, dword [0x439c08]
mov eax, 0x439c08
test cl, cl
je 0x410a5f
cmp byte [eax], 0x5c
jne 0x410a4a
mov byte [eax], 0x2f
push eax
call fcn.00412972
mov cl, byte [eax]
add esp, 4
test cl, cl
jne 0x410a42
mov ecx, dword [0x439c08]
cmp cl, 0x2f
mov ebx, 0x439c08
jne 0x410a83
mov dword [0x439d98], 1
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], 0
mov ebx, 0x439c09
jmp 0x410afe
cmp dword [0x425c84], 1
jle 0x410aa8
and ecx, 0xff
push 0x103
push ecx
call fcn.0041338f
mov ecx, dword [0x439c08]
add esp, 8
jmp 0x410abe
mov edx, dword [0x425a78]
mov eax, ecx
and eax, 0xff
mov ax, word [edx + eax*2]
and eax, 0x103
cmp eax, ebp
je 0x410afe
cmp ch, 0x3a
jne 0x410afe
mov byte [esp + 0x1c], cl
mov cl, byte [0x439c0a]
cmp cl, 0x2f
mov dword [0x439d98], 1
mov byte [esp + 0x1d], ch
lea eax, [esp + 0x1e]
mov ebx, 0x439c0a
jne 0x410afb
mov byte [esp + 0x1e], 0x2f
lea eax, [esp + 0x1f]
mov ebx, 0x439c0b
mov byte [eax], 0
lea eax, [esp + 0x1c]
push 1
push eax
call fcn.00411170
add esp, 8
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x411075
test esi, esi
mov byte [esp + 0x1c], 0
lea ebp, [esp + 0x1c]
jne 0x410b4c
mov eax, dword [0x429260]
test eax, eax
je 0x410b40
push 0x2f
push 0x439c08
call fcn.004141be
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x410b4b
mov ebx, 0x439c08
jmp 0x410b4c
inc ebx
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [ebx]
mov esi, ecx
test esi, esi
je 0x410d70
lea eax, [esi - 0x20]
cmp eax, 0x5c
ja case.0x410b72.36
xor edx, edx
mov dl, byte [eax + 0x411094]
jmp dword [edx*4 + 0x411080]
lea eax, [esp + 0x1c]
mov byte [ebp], 0
push eax
call fcn.00411120
add esp, 4
mov esi, 0x4250dc
lea eax, [esp + 0x1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x410bb7
test cl, cl
je 0x410bb3
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x410bb7
add eax, 2
add esi, 2
test cl, cl
jne 0x410b93
xor eax, eax
jmp 0x410bbc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410bd9
mov byte [esp + 0x1c], al
mov edi, dword [esp + 0x10]
lea ebp, [esp + 0x1c]
mov dword [esp + 0x14], 0
jmp 0x410cfe
mov eax, dword [0x4292a0]
test eax, eax
jne 0x410c26
mov esi, 0x4255dc
lea eax, [esp + 0x1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x410c0f
test cl, cl
je 0x410c0b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x410c0f
add eax, 2
add esi, 2
test cl, cl
jne 0x410beb
xor eax, eax
jmp 0x410c14
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410c26
mov byte [esp + 0x1c], al
mov dword [esp + 0x18], 1
jmp 0x410bc4
mov al, byte [esp + 0x1c]
test al, al
je 0x410bc4
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.00411170
mov edi, eax
add esp, 8
mov ecx, edi
mov dword [esp + 0x10], edi
and ecx, 0x7f00
cmp ecx, 0x100
jg 0x411073
lea ebp, [esp + 0x1c]
mov dword [esp + 0x14], 0
jmp 0x410cfe
mov dword [esp + 0x14], ebp
mov byte [ebp], 0x3b
inc ebp
jmp 0x410cfe
mov eax, dword [0x429278]
test eax, eax
jne case.0x410b72.33
push 0x439c08
call fcn.00411100
add esp, 4
test eax, eax
jne case.0x410b72.33
mov byte [ebp], 0x20
inc ebp
jmp 0x410cfe
mov byte [ebp], 0x5f
inc ebp
jmp 0x410cfe
cmp dword [0x425c84], 1
jle 0x410cb7
push 0x157
push esi
call fcn.0041338f
add esp, 8
jmp 0x410cc6
mov edx, dword [0x425a78]
mov ax, word [edx + esi*2]
and eax, 0x157
test eax, eax
jne 0x410ccf
cmp esi, 0x7f
jb 0x410cfe
mov eax, dword [0x425c84]
push eax
push ebx
call fcn.00413755
mov ecx, eax
mov esi, ebx
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00412972
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov ebp, eax
push ebx
call fcn.00412972
mov ebx, eax
xor eax, eax
add esp, 4
mov al, byte [ebx]
mov esi, eax
test esi, esi
jne 0x410b5e
mov eax, dword [esp + 0x18]
test eax, eax
je 0x410d70
mov eax, dword [0x429274]
test eax, eax
jne 0x410d70
push esi
push 0x431b04
push 0x439c08
call fcn.00406640
push eax
push 0x4256c0
push 0x429b04
call fcn.00412920
add esp, 0x14
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
test edi, 0xffff80ff
jne 0x410d70
and edi, 0x7f00
or edi, 1
mov ecx, dword [0x439d9c]
push ecx
push 0x439c08
call fcn.00407d60
mov cl, byte [eax]
add esp, 8
cmp cl, 0x2f
jne 0x410ede
push 4
push 0x439c08
call fcn.00411170
mov eax, dword [0x439d94]
add esp, 8
test eax, eax
je 0x410e61
mov eax, dword [0x429274]
test eax, eax
jne 0x410dec
push 0
push 0x431b04
push 0x439c08
call fcn.00406640
push eax
push 0x4256ac
push 0x429b04
call fcn.00412920
add esp, 0x14
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov edx, dword [0x429b00]
mov eax, dword [edx + 0x14]
test al, 0x6f
je 0x410e4e
and eax, 0x7f
push eax
push 0x439c08
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x410e4e
push 1
push 0x431b04
push 0x439c08
call fcn.00406640
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x425674
push 0x429b04
call fcn.00412920
add esp, 0x10
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov eax, edi
pop edi
and ah, 0x90
pop esi
pop ebp
or ah, 0x10
pop ebx
add esp, 0x110
ret
cmp dword [0x4292c8], 1
jne 0x410ecb
mov eax, dword [0x429b00]
mov eax, dword [eax + 0x14]
test al, 0x6f
je 0x410ecb
and eax, 0x7f
push eax
push 0x439c08
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x410ecb
push 1
push 0x431b04
push 0x439c08
call fcn.00406640
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x425674
push 0x429b04
call fcn.00412920
add esp, 0x10
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov eax, edi
pop edi
and ah, 0x82
pop esi
pop ebp
or ah, 2
pop ebx
add esp, 0x110
ret
mov byte [ebp], 0
mov eax, dword [0x429290]
test eax, eax
jne 0x410f2e
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x410f2e
lea esi, [ebx + 1]
cmp dword [0x425c84], 1
jle 0x410f10
xor ecx, ecx
push 4
mov cl, byte [esi]
push ecx
call fcn.0041338f
add esp, 8
jmp 0x410f1f
mov eax, dword [0x425a78]
xor edx, edx
mov dl, byte [esi]
mov al, byte [eax + edx*2]
and eax, 4
test eax, eax
je 0x410f26
inc esi
jmp 0x410ef6
cmp byte [esi], 0
jne 0x410f2e
mov byte [ebx], 0
lea ecx, [esp + 0x1c]
push ecx
call fcn.00411120
mov al, byte [esp + 0x20]
add esp, 4
test al, al
jne 0x410f8e
push 1
push 0x431b04
push 0x439c08
call fcn.00406640
push eax
push 0x425650
push 0x429b04
call fcn.00412920
add esp, 0x14
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov eax, edi
and ah, 0x83
pop edi
pop esi
pop ebp
or ah, 3
pop ebx
add esp, 0x110
ret
lea edx, [esp + 0x1c]
push 3
push edx
call fcn.00411170
push 4
push 0x439c08
call fcn.00411170
mov eax, dword [0x429b00]
add esp, 0x10
test byte [eax + 0x18], 0x20
je 0x411073
mov al, byte [0x42564e]
mov cl, byte [0x439da0]
mov dx, word [0x42564c]
mov byte [esp + 0x13], al
mov eax, dword [0x429274]
add cl, 0x60
test eax, eax
mov byte [esp + 0x10], cl
mov word [esp + 0x11], dx
jne 0x411020
push 0
push 0x431b04
push 0x439c08
call fcn.00406640
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0x425638
push 0x429b04
call fcn.00412920
add esp, 0x18
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
lea edx, [esp + 0x10]
push 0x439c08
push edx
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelA]
test eax, eax
jne 0x410ecb
push 1
push 0x425610
push 0x429b04
call fcn.00412920
add esp, 8
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov eax, edi
and ah, 0x83
pop edi
pop esi
pop ebp
or ah, 3
pop ebx
add esp, 0x110
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret