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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
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.00426f90
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 0x412320
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 0x41288d
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.0040e8d1
mov eax, dword [esi + 8]
mov edi, dword [0x481260]
add esp, 0xc
mov dword [ebp - 0xc], edi
test ah, 0xf0
je 0x412362
shr eax, 0xc
and eax, 0xf
mov dword [ebp - 0xc], eax
mov edi, eax
lea ecx, [ebp - 0x68]
call fcn.0041e1c7
lea ecx, [ebp - 0x5c]
call fcn.0041e1c7
lea ecx, [ebp - 0x50]
call fcn.0041e1c7
lea eax, [ebp - 0x68]
mov byte [ebp + 0xb], bl
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
call fcn.0040e965
add esp, 0xc
test eax, eax
jge 0x41239a
mov byte [ebp + 0xb], 1
jmp 0x4123fc
mov edi, 0x104
push edi
call fcn.00427869
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x4123be
mov ecx, 0x481a44
call fcn.0041f120
push eax
call fcn.0041fd97
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.0041e314
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.0041e314
push dword [ebp - 4]
call fcn.0042785e
mov edi, dword [ebp - 0xc]
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0041e1c7
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x68]
push eax
call fcn.0041f120
push eax
call fcn.00420e53
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.0040eb08
mov cx, word [esi + 0x28]
add esp, 0x18
cmp cx, word [ebp - 0x18]
mov dword [ebp - 4], eax
je 0x4125e0
cmp byte [ebp + 0xb], bl
jne 0x4125e0
cmp edi, 4
jne 0x41244e
cmp eax, 0xffffffff
je 0x41247d
cmp edi, 1
je 0x41247d
cmp edi, 6
jne 0x41245d
cmp eax, 0xffffffff
je 0x41247d
cmp edi, 5
jne 0x4125e0
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x412602
lea ecx, [ebp - 0x44]
call fcn.0041e1c7
cmp dword [ebp - 4], 0xffffffff
jne 0x412492
push 0x481f3c
jmp 0x4124a3
cmp dword [ebp - 4], ebx
jne 0x41249e
push 0x481f48
jmp 0x4124a3
push 0x481f54
lea ecx, [ebp - 0x44]
call fcn.0041e382
lea ecx, [ebp - 0x2c]
call fcn.0041e1c7
push 0x481f24
lea ecx, [ebp - 0x2c]
call fcn.0041e382
push ebx
push 0x42efac
lea ecx, [ebp - 0x2c]
call fcn.0041e449
push dword [ebp + 0xc]
mov ecx, 0x481f0c
call fcn.0041f120
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041e869
add esp, 0xc
mov edi, 0x42ea8c
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.0041e449
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
push eax
call fcn.0041e4c7
push ebx
push edi
lea ecx, [ebp - 0x2c]
call fcn.0041e449
lea ecx, [ebp - 0x50]
call fcn.0041f120
push eax
lea ecx, [ebp - 0x5c]
call fcn.0041f120
push eax
mov ecx, 0x481f30
call fcn.0041f120
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041e869
add esp, 0x10
lea ecx, [ebp - 0x2c]
push ebx
push edi
call fcn.0041e449
push 0x481f18
lea ecx, [ebp - 0x2c]
call fcn.0041e4c7
cmp dword [ebp - 0x38], ebx
jbe 0x412577
lea ecx, [ebp - 0x38]
call fcn.0041f120
push eax
mov ecx, 0x481b04
call fcn.0041f120
push eax
lea eax, [ebp - 0x2c]
push str._r_n_r_n_s__s
push eax
call fcn.0041e869
add esp, 0x10
mov ecx, 0x481810
call fcn.0041f120
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x2c]
call fcn.0041f120
push eax
push edi
mov ecx, 0x481080
call fcn.0041d619
cmp eax, 6
lea ecx, [ebp - 0x2c]
jne 0x4125d3
call fcn.0041e2fd
lea ecx, [ebp - 0x44]
call fcn.0041e2fd
lea ecx, [ebp - 0x38]
call fcn.0041e2fd
lea ecx, [ebp - 0x50]
call fcn.0041e2fd
lea ecx, [ebp - 0x5c]
call fcn.0041e2fd
lea ecx, [ebp - 0x68]
jmp 0x4129f3
call fcn.0041e2fd
lea ecx, [ebp - 0x44]
jmp 0x41282e
cmp edi, 1
je 0x41261b
cmp edi, 6
jne 0x4125ef
cmp eax, 1
je 0x41261b
cmp edi, 2
je 0x4125b3
cmp edi, 4
je 0x412610
cmp edi, 5
jne 0x412833
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412833
jmp 0x4125b3
lea ecx, [ebp - 0x44]
call fcn.0041e1c7
lea ecx, [ebp - 0x74]
call fcn.0041e1c7
cmp dword [ebp - 4], 0xffffffff
jne 0x412638
push 0x481f3c
jmp 0x412649
cmp dword [ebp - 4], ebx
jne 0x412644
push 0x481f48
jmp 0x412649
push 0x481f54
lea ecx, [ebp - 0x74]
call fcn.0041e382
push dword [ebp + 0xc]
mov ecx, 0x481f0c
call fcn.0041f120
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0041e869
add esp, 0xc
mov ecx, 0x481f18
call fcn.0041f120
push eax
lea ecx, [ebp - 0x74]
call fcn.0041f120
push eax
lea eax, [ebp - 0x44]
push str._r_n_s_r_n_s
push eax
call fcn.0041e869
add esp, 0x10
cmp dword [ebp - 0x38], ebx
ja 0x41269f
cmp dword [esi + 0x20], ebx
jne 0x41269f
cmp dword [esi + 0x24], ebx
je 0x4126ad
push ebx
push 0x42ea8c
lea ecx, [ebp - 0x44]
call fcn.0041e449
cmp dword [ebp - 0x38], ebx
jbe 0x4126d7
lea ecx, [ebp - 0x38]
call fcn.0041f120
push eax
mov ecx, 0x481b04
call fcn.0041f120
push eax
lea eax, [ebp - 0x44]
push str._r_n_s__s
push eax
call fcn.0041e869
add esp, 0x10
cmp dword [esi + 0x24], ebx
jne 0x4126e5
cmp dword [esi + 0x20], ebx
je 0x4127ea
push 0x481c3c
lea ecx, [ebp - 0x2c]
call fcn.0041e29b
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041e3e5
cmp al, 0x61
jl 0x41272d
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041e3e5
cmp al, 0x7a
jg 0x41272d
push 1
push ebx
push ebx
lea ecx, [ebp - 0x2c]
call fcn.0041e3e5
sub al, 0x20
lea ecx, [ebp - 0x2c]
push eax
push ebx
call fcn.0041e3e5
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041efcb
push ebx
push 0x42ef88
lea ecx, [ebp - 0x2c]
call fcn.0041e449
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov edx, ecx
shr edx, 0x10
cmp dx, bx
je 0x41276e
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.0041e869
add esp, 0x18
jmp 0x4127c8
cmp cx, bx
je 0x412792
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.0041e869
add esp, 0x14
jmp 0x4127c8
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp cx, bx
push eax
je 0x4127b7
movzx eax, cx
push eax
lea eax, [ebp - 0x2c]
push str._d._d
push eax
call fcn.0041e869
add esp, 0x10
jmp 0x4127c8
lea eax, [ebp - 0x2c]
push 0x42ef64
push eax
call fcn.0041e869
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0041f120
push eax
lea eax, [ebp - 0x44]
push str._r_n_s
push eax
call fcn.0041e869
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0041e2fd
mov ecx, 0x481810
call fcn.0041f120
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x44]
call fcn.0041f120
push eax
push edi
mov ecx, 0x481080
call fcn.0041d619
cmp eax, 6
lea ecx, [ebp - 0x74]
jne 0x412826
call fcn.0041e2fd
lea ecx, [ebp - 0x44]
jmp 0x4125ae
call fcn.0041e2fd
lea ecx, [ebp - 0x44]
call fcn.0041e2fd
test byte [0x481258], 0x10
je 0x412853
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.00411957
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 - 0x38]
call fcn.0041e2fd
lea ecx, [ebp - 0x50]
call fcn.0041e2fd
lea ecx, [ebp - 0x5c]
call fcn.0041e2fd
lea ecx, [ebp - 0x68]
call fcn.0041e2fd
jmp 0x412a0a
mov eax, dword [esi + 8]
shr eax, 0xc
and eax, 0xf
je 0x412a01
cmp eax, 3
je 0x412a01
cmp eax, 4
je 0x412a01
cmp eax, 2
je 0x4129f8
cmp eax, 5
jne 0x4128d8
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412a01
jmp 0x4129f8
cmp eax, 1
jne 0x41294f
lea ecx, [ebp - 0x74]
call fcn.0041e1c7
push dword [ebp + 0xc]
mov ecx, 0x481f0c
call fcn.0041f120
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0041e869
add esp, 0xc
lea ecx, [ebp - 0x74]
push ebx
push 0x42ea8c
call fcn.0041e449
push 0x481f18
lea ecx, [ebp - 0x74]
call fcn.0041e4c7
mov ecx, 0x481810
call fcn.0041f120
mov esi, dword [edi + 8]
push 0x34
push eax
lea ecx, [ebp - 0x74]
call fcn.0041f120
push eax
push esi
mov ecx, 0x481080
call fcn.0041d619
cmp eax, 6
lea ecx, [ebp - 0x74]
jne 0x412883
jmp 0x4129f3
cmp eax, 6
jne 0x412a0a
add esi, 0x10
lea eax, [ebp - 0x20]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412a01
lea ecx, [ebp - 0x68]
call fcn.0041e1c7
push dword [ebp + 0xc]
mov ecx, 0x481f0c
call fcn.0041f120
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0041e869
add esp, 0xc
mov edi, 0x42ea8c
lea ecx, [ebp - 0x68]
push ebx
push edi
call fcn.0041e449
push 0x481f54
lea ecx, [ebp - 0x68]
call fcn.0041e4c7
push ebx
push edi
lea ecx, [ebp - 0x68]
call fcn.0041e449
push 0x481f18
lea ecx, [ebp - 0x68]
call fcn.0041e4c7
mov ecx, 0x481810
call fcn.0041f120
mov ecx, dword [ebp - 8]
push 0x34
push eax
mov esi, dword [ecx + 8]
lea ecx, [ebp - 0x68]
call fcn.0041f120
push eax
push esi
mov ecx, 0x481080
call fcn.0041d619
cmp eax, 6
lea ecx, [ebp - 0x68]
jne 0x4129fc
call fcn.0041e2fd
xor eax, eax
jmp 0x412a0d
call fcn.0041e2fd
push dword [ebp + 0xc]
call fcn.0040e8ad
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0xc