Function at 0x410302
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.00421740
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 0x410355
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 0x410898
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.0040d2c7
mov eax, dword [esi + 8]
mov edi, dword [0x47a0c4]
add esp, 0xc
mov dword [ebp - 0xc], edi
test ah, 0xf
je 0x410397
shr eax, 8
and eax, 0xf
mov dword [ebp - 0xc], eax
mov edi, eax
lea ecx, [ebp - 0x38]
call fcn.00419c64
lea ecx, [ebp - 0x5c]
call fcn.00419c64
lea ecx, [ebp - 0x50]
call fcn.00419c64
lea eax, [ebp - 0x38]
mov byte [ebp + 0xb], bl
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
call fcn.0040d35b
add esp, 0xc
test eax, eax
jge 0x4103cf
mov byte [ebp + 0xb], 1
jmp 0x410431
mov edi, 0x104
push edi
call fcn.0042200e
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x4103f3
mov ecx, 0x47a7fc
call fcn.0041ab9e
push eax
call fcn.0041b6d2
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.00419db1
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.00419db1
push dword [ebp - 4]
call fcn.0042201c
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.0040d4fe
mov cx, word [esi + 0x28]
add esp, 0x10
cmp cx, word [ebp - 0x18]
mov dword [ebp - 4], eax
je 0x4105f3
cmp byte [ebp + 0xb], bl
jne 0x4105f3
cmp edi, 4
jne 0x410469
cmp eax, 0xffffffff
je 0x410498
cmp edi, 1
je 0x410498
cmp edi, 6
jne 0x410478
cmp eax, 0xffffffff
je 0x410498
cmp edi, 5
jne 0x4105f3
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x410615
lea ecx, [ebp - 0x44]
call fcn.00419c64
cmp dword [ebp - 4], 0xffffffff
jne 0x4104ad
push 0x47acf4
jmp 0x4104be
cmp dword [ebp - 4], ebx
jne 0x4104b9
push 0x47ad00
jmp 0x4104be
push 0x47ad0c
lea ecx, [ebp - 0x44]
call fcn.00419e1f
lea ecx, [ebp - 0x2c]
call fcn.00419c64
push 0x47acdc
lea ecx, [ebp - 0x2c]
call fcn.00419e1f
push ebx
push 0x428078
lea ecx, [ebp - 0x2c]
call fcn.00419ee6
push dword [ebp + 0xc]
mov ecx, 0x47acc4
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041a30f
add esp, 0xc
mov edi, 0x427c50
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.00419ee6
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00419f64
push ebx
push edi
lea ecx, [ebp - 0x2c]
call fcn.00419ee6
lea ecx, [ebp - 0x50]
call fcn.0041ab9e
push eax
lea ecx, [ebp - 0x5c]
call fcn.0041ab9e
push eax
mov ecx, 0x47ace8
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041a30f
add esp, 0x10
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.00419ee6
push 0x47acd0
lea ecx, [ebp - 0x2c]
call fcn.00419f64
cmp dword [ebp - 0x38], ebx
jbe 0x410592
lea ecx, [ebp - 0x38]
call fcn.0041ab9e
push eax
mov ecx, 0x47a8bc
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x2c]
push str._r_n_r_n_s__s
push eax
call fcn.0041a30f
add esp, 0x10
mov ecx, 0x47a598
call fcn.0041ab9e
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x2c]
call fcn.0041ab9e
push eax
push edi
mov ecx, 0x479ee8
call fcn.004191a7
cmp eax, 6
lea ecx, [ebp - 0x2c]
jne 0x4105e6
call fcn.00419d9a
lea ecx, [ebp - 0x44]
call fcn.00419d9a
lea ecx, [ebp - 0x50]
call fcn.00419d9a
lea ecx, [ebp - 0x5c]
call fcn.00419d9a
lea ecx, [ebp - 0x38]
jmp 0x4109fe
call fcn.00419d9a
lea ecx, [ebp - 0x44]
jmp 0x410841
cmp edi, 1
je 0x41062e
cmp edi, 6
jne 0x410602
cmp eax, 1
je 0x41062e
cmp edi, 2
je 0x4105ce
cmp edi, 4
je 0x410623
cmp edi, 5
jne 0x410846
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x410846
jmp 0x4105ce
lea ecx, [ebp - 0x44]
call fcn.00419c64
lea ecx, [ebp - 0x68]
call fcn.00419c64
cmp dword [ebp - 4], 0xffffffff
jne 0x41064b
push 0x47acf4
jmp 0x41065c
cmp dword [ebp - 4], ebx
jne 0x410657
push 0x47ad00
jmp 0x41065c
push 0x47ad0c
lea ecx, [ebp - 0x68]
call fcn.00419e1f
push dword [ebp + 0xc]
mov ecx, 0x47acc4
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0041a30f
add esp, 0xc
mov ecx, 0x47acd0
call fcn.0041ab9e
push eax
lea ecx, [ebp - 0x68]
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x44]
push str._r_n_s_r_n_s
push eax
call fcn.0041a30f
add esp, 0x10
cmp dword [ebp - 0x38], ebx
ja 0x4106b2
cmp dword [esi + 0x20], ebx
jne 0x4106b2
cmp dword [esi + 0x24], ebx
je 0x4106c0
push ebx
push 0x427c50
lea ecx, [ebp - 0x44]
call fcn.00419ee6
cmp dword [ebp - 0x38], ebx
jbe 0x4106ea
lea ecx, [ebp - 0x38]
call fcn.0041ab9e
push eax
mov ecx, 0x47a8bc
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x44]
push str._r_n_s__s
push eax
call fcn.0041a30f
add esp, 0x10
cmp dword [esi + 0x24], ebx
jne 0x4106f8
cmp dword [esi + 0x20], ebx
je 0x4107fd
push 0x47a9f4
lea ecx, [ebp - 0x2c]
call fcn.00419d38
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00419e82
cmp al, 0x61
jl 0x410740
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00419e82
cmp al, 0x7a
jg 0x410740
push 1
push ebx
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00419e82
sub al, 0x20
lea ecx, [ebp - 0x2c]
push eax
push ebx
call fcn.00419e82
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041aa45
push ebx
push 0x428054
lea ecx, [ebp - 0x2c]
call fcn.00419ee6
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov edx, ecx
shr edx, 0x10
cmp dx, bx
je 0x410781
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.0041a30f
add esp, 0x18
jmp 0x4107db
cmp cx, bx
je 0x4107a5
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.0041a30f
add esp, 0x14
jmp 0x4107db
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp cx, bx
push eax
je 0x4107ca
movzx eax, cx
push eax
lea eax, [ebp - 0x2c]
push str._d._d
push eax
call fcn.0041a30f
add esp, 0x10
jmp 0x4107db
lea eax, [ebp - 0x2c]
push 0x428030
push eax
call fcn.0041a30f
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x44]
push str._r_n_s
push eax
call fcn.0041a30f
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.00419d9a
mov ecx, 0x47a598
call fcn.0041ab9e
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x44]
call fcn.0041ab9e
push eax
push edi
mov ecx, 0x479ee8
call fcn.004191a7
cmp eax, 6
lea ecx, [ebp - 0x68]
jne 0x410839
call fcn.00419d9a
lea ecx, [ebp - 0x44]
jmp 0x4105c9
call fcn.00419d9a
lea ecx, [ebp - 0x44]
call fcn.00419d9a
test byte [0x47a0b8], 0x10
je 0x410866
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.0040fa29
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.00419d9a
lea ecx, [ebp - 0x5c]
call fcn.00419d9a
lea ecx, [ebp - 0x38]
call fcn.00419d9a
jmp 0x410a15
mov eax, dword [esi + 8]
shr eax, 8
and eax, 0xf
je 0x410a0c
cmp eax, 3
je 0x410a0c
cmp eax, 4
je 0x410a0c
cmp eax, 2
je 0x410a03
cmp eax, 5
jne 0x4108e3
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x410a0c
jmp 0x410a03
cmp eax, 1
jne 0x41095a
lea ecx, [ebp - 0x68]
call fcn.00419c64
push dword [ebp + 0xc]
mov ecx, 0x47acc4
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0041a30f
add esp, 0xc
lea ecx, [ebp - 0x68]
push ebx
push 0x427c50
call fcn.00419ee6
push 0x47acd0
lea ecx, [ebp - 0x68]
call fcn.00419f64
mov ecx, 0x47a598
call fcn.0041ab9e
mov esi, dword [edi + 8]
push 0x34
push eax
lea ecx, [ebp - 0x68]
call fcn.0041ab9e
push eax
push esi
mov ecx, 0x479ee8
call fcn.004191a7
cmp eax, 6
lea ecx, [ebp - 0x68]
jne 0x41088e
jmp 0x4109fe
cmp eax, 6
jne 0x410a15
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x410a0c
lea ecx, [ebp - 0x5c]
call fcn.00419c64
push dword [ebp + 0xc]
mov ecx, 0x47acc4
call fcn.0041ab9e
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0041a30f
add esp, 0xc
mov edi, 0x427c50
lea ecx, [ebp - 0x5c]
push ebx
push edi
call fcn.00419ee6
push 0x47ad0c
lea ecx, [ebp - 0x5c]
call fcn.00419f64
push ebx
push edi
lea ecx, [ebp - 0x5c]
call fcn.00419ee6
push 0x47acd0
lea ecx, [ebp - 0x5c]
call fcn.00419f64
mov ecx, 0x47a598
call fcn.0041ab9e
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov esi, dword [ecx + 8]
lea ecx, [ebp - 0x5c]
call fcn.0041ab9e
push eax
push esi
mov ecx, 0x479ee8
call fcn.004191a7
cmp eax, 6
lea ecx, [ebp - 0x5c]
jne 0x410a07
call fcn.00419d9a
xor eax, eax
jmp 0x410a18
call fcn.00419d9a
push dword [ebp + 0xc]
call fcn.0040d2a3
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0xc