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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
xor ebx, ebx
push 8
lea eax, [ebp - 0x1c]
mov edi, ecx
push ebx
push eax
mov dword [ebp - 4], edi
call fcn.00427c50
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 0x4127b4
lea eax, [ebp - 0x1c]
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 0x412d21
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], ebx
push eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0xc], ebx
push dword [ebp + 0xc]
call fcn.0040eb6f
mov eax, dword [esi + 8]
mov edi, dword [0x482510]
add esp, 0xc
mov dword [ebp - 8], edi
test ah, 0xf0
je 0x4127f6
shr eax, 0xc
and eax, 0xf
mov dword [ebp - 8], eax
mov edi, eax
lea ecx, [ebp - 0x64]
call fcn.0041eab0
lea ecx, [ebp - 0x58]
call fcn.0041eab0
lea ecx, [ebp - 0x4c]
call fcn.0041eab0
lea eax, [ebp - 0x64]
mov byte [ebp + 0x17], bl
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
call fcn.0040ec03
add esp, 0xc
test eax, eax
jge 0x41282e
mov byte [ebp + 0x17], 1
jmp 0x412890
mov edi, 0x104
push edi
call fcn.00428529
cmp eax, ebx
pop ecx
mov dword [ebp + 8], eax
jne 0x412852
mov ecx, 0x482cfc
call fcn.0041fa6a
push eax
call fcn.00420722
pop ecx
movzx eax, word [ebp - 0x14]
push edi
push dword [ebp + 8]
push eax
call sub.KERNEL32.dll_VerLanguageNameA
push dword [ebp + 8]
lea ecx, [ebp - 0x58]
call fcn.0041ec53
movzx eax, word [esi + 0x28]
push edi
push dword [ebp + 8]
push eax
call sub.KERNEL32.dll_VerLanguageNameA
push dword [ebp + 8]
lea ecx, [ebp - 0x4c]
call fcn.0041ec53
push dword [ebp + 8]
call fcn.0042851e
mov edi, dword [ebp - 8]
pop ecx
lea ecx, [ebp - 0x34]
call fcn.0041eab0
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x64]
push eax
call fcn.0041fa6a
push eax
call fcn.004217e4
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.0040eda6
mov cx, word [esi + 0x28]
add esp, 0x18
cmp cx, word [ebp - 0x14]
mov dword [ebp + 8], eax
je 0x412a74
cmp byte [ebp + 0x17], bl
jne 0x412a74
cmp edi, 4
jne 0x4128e2
cmp eax, 0xffffffff
je 0x412911
cmp edi, 1
je 0x412911
cmp edi, 6
jne 0x4128f1
cmp eax, 0xffffffff
je 0x412911
cmp edi, 5
jne 0x412a74
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x412a96
lea ecx, [ebp - 0x40]
call fcn.0041eab0
cmp dword [ebp + 8], 0xffffffff
jne 0x412926
push 0x4831f4
jmp 0x412937
cmp dword [ebp + 8], ebx
jne 0x412932
push 0x483200
jmp 0x412937
push 0x48320c
lea ecx, [ebp - 0x40]
call fcn.0041ecc1
lea ecx, [ebp - 0x28]
call fcn.0041eab0
push 0x4831dc
lea ecx, [ebp - 0x28]
call fcn.0041ecc1
push ebx
push 0x42ffb4
lea ecx, [ebp - 0x28]
call fcn.0041ed73
push dword [ebp + 0xc]
mov ecx, 0x4831c4
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041f193
add esp, 0xc
mov edi, 0x42fa2c
lea ecx, [ebp - 0x28]
push ebx
push edi
call fcn.0041ed73
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x28]
push eax
call fcn.0041edf1
push ebx
push edi
lea ecx, [ebp - 0x28]
call fcn.0041ed73
lea ecx, [ebp - 0x4c]
call fcn.0041fa6a
push eax
lea ecx, [ebp - 0x58]
call fcn.0041fa6a
push eax
mov ecx, 0x4831e8
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041f193
add esp, 0x10
lea ecx, [ebp - 0x28]
push ebx
push edi
call fcn.0041ed73
push 0x4831d0
lea ecx, [ebp - 0x28]
call fcn.0041edf1
cmp dword [ebp - 0x34], ebx
jbe 0x412a0b
lea ecx, [ebp - 0x34]
call fcn.0041fa6a
push eax
mov ecx, 0x482dbc
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x28]
push str._r_n_r_n_s__s
push eax
call fcn.0041f193
add esp, 0x10
mov ecx, 0x482ac8
call fcn.0041fa6a
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x28]
call fcn.0041fa6a
push eax
push edi
mov ecx, 0x482320
call fcn.0041df8b
cmp eax, 6
lea ecx, [ebp - 0x28]
jne 0x412a67
call fcn.0041ebe6
lea ecx, [ebp - 0x40]
call fcn.0041ebe6
lea ecx, [ebp - 0x34]
call fcn.0041ebe6
lea ecx, [ebp - 0x4c]
call fcn.0041ebe6
lea ecx, [ebp - 0x58]
call fcn.0041ebe6
lea ecx, [ebp - 0x64]
jmp 0x412e87
call fcn.0041ebe6
lea ecx, [ebp - 0x40]
jmp 0x412cc2
cmp edi, 1
je 0x412aaf
cmp edi, 6
jne 0x412a83
cmp eax, 1
je 0x412aaf
cmp edi, 2
je 0x412a47
cmp edi, 4
je 0x412aa4
cmp edi, 5
jne 0x412cc7
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412cc7
jmp 0x412a47
lea ecx, [ebp - 0x40]
call fcn.0041eab0
lea ecx, [ebp - 0x70]
call fcn.0041eab0
cmp dword [ebp + 8], 0xffffffff
jne 0x412acc
push 0x4831f4
jmp 0x412add
cmp dword [ebp + 8], ebx
jne 0x412ad8
push 0x483200
jmp 0x412add
push 0x48320c
lea ecx, [ebp - 0x70]
call fcn.0041ecc1
push dword [ebp + 0xc]
mov ecx, 0x4831c4
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0041f193
add esp, 0xc
mov ecx, 0x4831d0
call fcn.0041fa6a
push eax
lea ecx, [ebp - 0x70]
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x40]
push str._r_n_s_r_n_s
push eax
call fcn.0041f193
add esp, 0x10
cmp dword [ebp - 0x34], ebx
ja 0x412b33
cmp dword [esi + 0x20], ebx
jne 0x412b33
cmp dword [esi + 0x24], ebx
je 0x412b41
push ebx
push 0x42fa2c
lea ecx, [ebp - 0x40]
call fcn.0041ed73
cmp dword [ebp - 0x34], ebx
jbe 0x412b6b
lea ecx, [ebp - 0x34]
call fcn.0041fa6a
push eax
mov ecx, 0x482dbc
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x40]
push str._r_n_s__s
push eax
call fcn.0041f193
add esp, 0x10
cmp dword [esi + 0x24], ebx
jne 0x412b79
cmp dword [esi + 0x20], ebx
je 0x412c7e
push 0x482ef4
lea ecx, [ebp - 0x28]
call fcn.0041eb84
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041f608
cmp al, 0x61
jl 0x412bc1
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041f608
cmp al, 0x7a
jg 0x412bc1
push 1
push ebx
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041f608
sub al, 0x20
lea ecx, [ebp - 0x28]
push eax
push ebx
call fcn.0041f608
push eax
lea ecx, [ebp - 0x28]
call fcn.0041f90a
push ebx
push 0x42ff90
lea ecx, [ebp - 0x28]
call fcn.0041ed73
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov edx, ecx
shr edx, 0x10
cmp dx, bx
je 0x412c02
movzx edi, ax
shr eax, 0x10
push edi
push eax
movzx eax, cx
push eax
movzx eax, dx
push eax
lea eax, [ebp - 0x28]
push str._d._d._d._d
push eax
call fcn.0041f193
add esp, 0x18
jmp 0x412c5c
cmp cx, bx
je 0x412c26
movzx edx, ax
shr eax, 0x10
push edx
push eax
movzx eax, cx
push eax
lea eax, [ebp - 0x28]
push str._d._d._d
push eax
call fcn.0041f193
add esp, 0x14
jmp 0x412c5c
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp cx, bx
push eax
je 0x412c4b
movzx eax, cx
push eax
lea eax, [ebp - 0x28]
push str._d._d
push eax
call fcn.0041f193
add esp, 0x10
jmp 0x412c5c
lea eax, [ebp - 0x28]
push 0x42ff6c
push eax
call fcn.0041f193
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x40]
push str._r_n_s
push eax
call fcn.0041f193
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.0041ebe6
mov ecx, 0x482ac8
call fcn.0041fa6a
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x40]
call fcn.0041fa6a
push eax
push edi
mov ecx, 0x482320
call fcn.0041df8b
cmp eax, 6
lea ecx, [ebp - 0x70]
jne 0x412cba
call fcn.0041ebe6
lea ecx, [ebp - 0x40]
jmp 0x412a42
call fcn.0041ebe6
lea ecx, [ebp - 0x40]
call fcn.0041ebe6
test byte [0x482508], 0x10
je 0x412ce7
push dword [esi + 0x14]
mov ecx, dword [ebp - 4]
push dword [esi + 0x10]
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [ebp + 0xc]
call fcn.00411cd7
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 - 0x34]
call fcn.0041ebe6
lea ecx, [ebp - 0x4c]
call fcn.0041ebe6
lea ecx, [ebp - 0x58]
call fcn.0041ebe6
lea ecx, [ebp - 0x64]
call fcn.0041ebe6
jmp 0x412ea2
mov eax, dword [esi + 8]
shr eax, 0xc
and eax, 0xf
je 0x412e95
cmp eax, 3
je 0x412e95
cmp eax, 4
je 0x412e95
cmp eax, 2
je 0x412e8c
cmp eax, 5
jne 0x412d6c
add esi, 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412e95
jmp 0x412e8c
cmp eax, 1
jne 0x412de3
lea ecx, [ebp - 0x70]
call fcn.0041eab0
push dword [ebp + 0xc]
mov ecx, 0x4831c4
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0041f193
add esp, 0xc
lea ecx, [ebp - 0x70]
push ebx
push 0x42fa2c
call fcn.0041ed73
push 0x4831d0
lea ecx, [ebp - 0x70]
call fcn.0041edf1
mov ecx, 0x482ac8
call fcn.0041fa6a
mov esi, dword [edi + 8]
push 0x34
push eax
lea ecx, [ebp - 0x70]
call fcn.0041fa6a
push eax
push esi
mov ecx, 0x482320
call fcn.0041df8b
cmp eax, 6
lea ecx, [ebp - 0x70]
jne 0x412d17
jmp 0x412e87
cmp eax, 6
jne 0x412ea2
add esi, 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412e95
lea ecx, [ebp - 0x64]
call fcn.0041eab0
push dword [ebp + 0xc]
mov ecx, 0x4831c4
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0041f193
add esp, 0xc
mov edi, 0x42fa2c
lea ecx, [ebp - 0x64]
push ebx
push edi
call fcn.0041ed73
push 0x48320c
lea ecx, [ebp - 0x64]
call fcn.0041edf1
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.0041ed73
push 0x4831d0
lea ecx, [ebp - 0x64]
call fcn.0041edf1
mov ecx, 0x482ac8
call fcn.0041fa6a
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov esi, dword [ecx + 8]
lea ecx, [ebp - 0x64]
call fcn.0041fa6a
push eax
push esi
mov ecx, 0x482320
call fcn.0041df8b
cmp eax, 6
lea ecx, [ebp - 0x64]
jne 0x412e90
call fcn.0041ebe6
xor eax, eax
jmp 0x412ea5
call fcn.0041ebe6
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call fcn.0041267e
pop ecx
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10