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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
push ebx
push esi
push edi
xor ebx, ebx
push 8
lea eax, [ebp - 0x20]
mov edi, ecx
push ebx
push eax
mov dword [ebp - 8], edi
call fcn.00425890
add esp, 0xc
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x411863
lea eax, [ebp - 0x20]
push eax
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 8]
test byte [esi + 0xc], 1
je 0x411da6
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], ebx
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x10], ebx
push dword [ebp + 0xc]
call fcn.0040e38c
mov eax, dword [esi + 8]
mov edi, dword [0x47f288]
add esp, 0xc
mov dword [ebp - 0xc], edi
test ah, 0xf0
je 0x4118a5
shr eax, 0xc
and eax, 0xf
mov dword [ebp - 0xc], eax
mov edi, eax
lea ecx, [ebp - 0x38]
call fcn.0041cf73
lea ecx, [ebp - 0x5c]
call fcn.0041cf73
lea ecx, [ebp - 0x50]
call fcn.0041cf73
lea eax, [ebp - 0x38]
mov byte [ebp + 0xb], bl
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
call fcn.0040e420
add esp, 0xc
test eax, eax
jge 0x4118dd
mov byte [ebp + 0xb], 1
jmp 0x41193f
mov edi, 0x104
push edi
call fcn.00426169
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x411901
mov ecx, 0x47fa24
call fcn.0041decc
push eax
call fcn.0041eaf1
pop ecx
movzx eax, word [ebp - 0x18]
push edi
push dword [ebp - 4]
push eax
call sub.KERNEL32.dll_VerLanguageNameA
push dword [ebp - 4]
lea ecx, [ebp - 0x5c]
call fcn.0041d0c0
movzx eax, word [esi + 0x28]
push edi
push dword [ebp - 4]
push eax
call sub.KERNEL32.dll_VerLanguageNameA
push dword [ebp - 4]
lea ecx, [ebp - 0x50]
call fcn.0041d0c0
push dword [ebp - 4]
call fcn.0042615e
mov edi, dword [ebp - 0xc]
pop ecx
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.0040e5c3
mov cx, word [esi + 0x28]
add esp, 0x10
cmp cx, word [ebp - 0x18]
mov dword [ebp - 4], eax
je 0x411b01
cmp byte [ebp + 0xb], bl
jne 0x411b01
cmp edi, 4
jne 0x411977
cmp eax, 0xffffffff
je 0x4119a6
cmp edi, 1
je 0x4119a6
cmp edi, 6
jne 0x411986
cmp eax, 0xffffffff
je 0x4119a6
cmp edi, 5
jne 0x411b01
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x411b23
lea ecx, [ebp - 0x44]
call fcn.0041cf73
cmp dword [ebp - 4], 0xffffffff
jne 0x4119bb
push 0x47ff1c
jmp 0x4119cc
cmp dword [ebp - 4], ebx
jne 0x4119c7
push 0x47ff28
jmp 0x4119cc
push 0x47ff34
lea ecx, [ebp - 0x44]
call fcn.0041d12e
lea ecx, [ebp - 0x2c]
call fcn.0041cf73
push 0x47ff04
lea ecx, [ebp - 0x2c]
call fcn.0041d12e
push ebx
push 0x42d08c
lea ecx, [ebp - 0x2c]
call fcn.0041d1e0
push dword [ebp + 0xc]
mov ecx, 0x47feec
call fcn.0041decc
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041d600
add esp, 0xc
mov edi, 0x42cc5c
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.0041d1e0
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
push eax
call fcn.0041d25e
push ebx
push edi
lea ecx, [ebp - 0x2c]
call fcn.0041d1e0
lea ecx, [ebp - 0x50]
call fcn.0041decc
push eax
lea ecx, [ebp - 0x5c]
call fcn.0041decc
push eax
mov ecx, 0x47ff10
call fcn.0041decc
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041d600
add esp, 0x10
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.0041d1e0
push 0x47fef8
lea ecx, [ebp - 0x2c]
call fcn.0041d25e
cmp dword [ebp - 0x38], ebx
jbe 0x411aa0
lea ecx, [ebp - 0x38]
call fcn.0041decc
push eax
mov ecx, 0x47fae4
call fcn.0041decc
push eax
lea eax, [ebp - 0x2c]
push str._r_n_r_n_s__s
push eax
call fcn.0041d600
add esp, 0x10
mov ecx, 0x47f7f0
call fcn.0041decc
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x2c]
call fcn.0041decc
push eax
push edi
mov ecx, 0x47f0a8
call fcn.0041c473
cmp eax, 6
lea ecx, [ebp - 0x2c]
jne 0x411af4
call fcn.0041d0a9
lea ecx, [ebp - 0x44]
call fcn.0041d0a9
lea ecx, [ebp - 0x50]
call fcn.0041d0a9
lea ecx, [ebp - 0x5c]
call fcn.0041d0a9
lea ecx, [ebp - 0x38]
jmp 0x411f0c
call fcn.0041d0a9
lea ecx, [ebp - 0x44]
jmp 0x411d4f
cmp edi, 1
je 0x411b3c
cmp edi, 6
jne 0x411b10
cmp eax, 1
je 0x411b3c
cmp edi, 2
je 0x411adc
cmp edi, 4
je 0x411b31
cmp edi, 5
jne 0x411d54
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x411d54
jmp 0x411adc
lea ecx, [ebp - 0x44]
call fcn.0041cf73
lea ecx, [ebp - 0x68]
call fcn.0041cf73
cmp dword [ebp - 4], 0xffffffff
jne 0x411b59
push 0x47ff1c
jmp 0x411b6a
cmp dword [ebp - 4], ebx
jne 0x411b65
push 0x47ff28
jmp 0x411b6a
push 0x47ff34
lea ecx, [ebp - 0x68]
call fcn.0041d12e
push dword [ebp + 0xc]
mov ecx, 0x47feec
call fcn.0041decc
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0041d600
add esp, 0xc
mov ecx, 0x47fef8
call fcn.0041decc
push eax
lea ecx, [ebp - 0x68]
call fcn.0041decc
push eax
lea eax, [ebp - 0x44]
push str._r_n_s_r_n_s
push eax
call fcn.0041d600
add esp, 0x10
cmp dword [ebp - 0x38], ebx
ja 0x411bc0
cmp dword [esi + 0x20], ebx
jne 0x411bc0
cmp dword [esi + 0x24], ebx
je 0x411bce
push ebx
push 0x42cc5c
lea ecx, [ebp - 0x44]
call fcn.0041d1e0
cmp dword [ebp - 0x38], ebx
jbe 0x411bf8
lea ecx, [ebp - 0x38]
call fcn.0041decc
push eax
mov ecx, 0x47fae4
call fcn.0041decc
push eax
lea eax, [ebp - 0x44]
push str._r_n_s__s
push eax
call fcn.0041d600
add esp, 0x10
cmp dword [esi + 0x24], ebx
jne 0x411c06
cmp dword [esi + 0x20], ebx
je 0x411d0b
push 0x47fc1c
lea ecx, [ebp - 0x2c]
call fcn.0041d047
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041da75
cmp al, 0x61
jl 0x411c4e
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041da75
cmp al, 0x7a
jg 0x411c4e
push 1
push ebx
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041da75
sub al, 0x20
lea ecx, [ebp - 0x2c]
push eax
push ebx
call fcn.0041da75
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041dd77
push ebx
push 0x42d068
lea ecx, [ebp - 0x2c]
call fcn.0041d1e0
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov edx, ecx
shr edx, 0x10
cmp dx, bx
je 0x411c8f
movzx edi, ax
shr eax, 0x10
push edi
push eax
movzx eax, cx
push eax
movzx eax, dx
push eax
lea eax, [ebp - 0x2c]
push str._d._d._d._d
push eax
call fcn.0041d600
add esp, 0x18
jmp 0x411ce9
cmp cx, bx
je 0x411cb3
movzx edx, ax
shr eax, 0x10
push edx
push eax
movzx eax, cx
push eax
lea eax, [ebp - 0x2c]
push str._d._d._d
push eax
call fcn.0041d600
add esp, 0x14
jmp 0x411ce9
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp cx, bx
push eax
je 0x411cd8
movzx eax, cx
push eax
lea eax, [ebp - 0x2c]
push str._d._d
push eax
call fcn.0041d600
add esp, 0x10
jmp 0x411ce9
lea eax, [ebp - 0x2c]
push 0x42d044
push eax
call fcn.0041d600
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0041decc
push eax
lea eax, [ebp - 0x44]
push str._r_n_s
push eax
call fcn.0041d600
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0041d0a9
mov ecx, 0x47f7f0
call fcn.0041decc
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x44]
call fcn.0041decc
push eax
push edi
mov ecx, 0x47f0a8
call fcn.0041c473
cmp eax, 6
lea ecx, [ebp - 0x68]
jne 0x411d47
call fcn.0041d0a9
lea ecx, [ebp - 0x44]
jmp 0x411ad7
call fcn.0041d0a9
lea ecx, [ebp - 0x44]
call fcn.0041d0a9
test byte [0x47f280], 0x10
je 0x411d74
push dword [esi + 0x14]
mov ecx, dword [ebp - 8]
push dword [esi + 0x10]
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [ebp + 0xc]
call fcn.00410efb
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and al, 0xfe
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0x50]
call fcn.0041d0a9
lea ecx, [ebp - 0x5c]
call fcn.0041d0a9
lea ecx, [ebp - 0x38]
call fcn.0041d0a9
jmp 0x411f23
mov eax, dword [esi + 8]
shr eax, 0xc
and eax, 0xf
je 0x411f1a
cmp eax, 3
je 0x411f1a
cmp eax, 4
je 0x411f1a
cmp eax, 2
je 0x411f11
cmp eax, 5
jne 0x411df1
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x411f1a
jmp 0x411f11
cmp eax, 1
jne 0x411e68
lea ecx, [ebp - 0x68]
call fcn.0041cf73
push dword [ebp + 0xc]
mov ecx, 0x47feec
call fcn.0041decc
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0041d600
add esp, 0xc
lea ecx, [ebp - 0x68]
push ebx
push 0x42cc5c
call fcn.0041d1e0
push 0x47fef8
lea ecx, [ebp - 0x68]
call fcn.0041d25e
mov ecx, 0x47f7f0
call fcn.0041decc
mov esi, dword [edi + 8]
push 0x34
push eax
lea ecx, [ebp - 0x68]
call fcn.0041decc
push eax
push esi
mov ecx, 0x47f0a8
call fcn.0041c473
cmp eax, 6
lea ecx, [ebp - 0x68]
jne 0x411d9c
jmp 0x411f0c
cmp eax, 6
jne 0x411f23
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x411f1a
lea ecx, [ebp - 0x5c]
call fcn.0041cf73
push dword [ebp + 0xc]
mov ecx, 0x47feec
call fcn.0041decc
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0041d600
add esp, 0xc
mov edi, 0x42cc5c
lea ecx, [ebp - 0x5c]
push ebx
push edi
call fcn.0041d1e0
push 0x47ff34
lea ecx, [ebp - 0x5c]
call fcn.0041d25e
push ebx
push edi
lea ecx, [ebp - 0x5c]
call fcn.0041d1e0
push 0x47fef8
lea ecx, [ebp - 0x5c]
call fcn.0041d25e
mov ecx, 0x47f7f0
call fcn.0041decc
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov esi, dword [ecx + 8]
lea ecx, [ebp - 0x5c]
call fcn.0041decc
push eax
push esi
mov ecx, 0x47f0a8
call fcn.0041c473
cmp eax, 6
lea ecx, [ebp - 0x5c]
jne 0x411f15
call fcn.0041d0a9
xor eax, eax
jmp 0x411f26
call fcn.0041d0a9
push dword [ebp + 0xc]
call fcn.0040e368
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0xc