Function at 0x4124f6
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.004274e0
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 0x412549
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 0x412ab6
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.0040e9cc
mov eax, dword [esi + 8]
mov edi, dword [0x4812b0]
add esp, 0xc
mov dword [ebp - 8], edi
test ah, 0xf0
je 0x41258b
shr eax, 0xc
and eax, 0xf
mov dword [ebp - 8], eax
mov edi, eax
lea ecx, [ebp - 0x64]
call fcn.0041e62f
lea ecx, [ebp - 0x58]
call fcn.0041e62f
lea ecx, [ebp - 0x4c]
call fcn.0041e62f
lea eax, [ebp - 0x64]
mov byte [ebp + 0x17], bl
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
call fcn.0040ea60
add esp, 0xc
test eax, eax
jge 0x4125c3
mov byte [ebp + 0x17], 1
jmp 0x412625
mov edi, 0x104
push edi
call fcn.00427db9
cmp eax, ebx
pop ecx
mov dword [ebp + 8], eax
jne 0x4125e7
mov ecx, 0x481a9c
call fcn.0041f593
push eax
call fcn.0042024b
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.0041e77c
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.0041e77c
push dword [ebp + 8]
call fcn.00427dae
mov edi, dword [ebp - 8]
pop ecx
lea ecx, [ebp - 0x34]
call fcn.0041e62f
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x64]
push eax
call fcn.0041f593
push eax
call fcn.0042130d
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.0040ec03
mov cx, word [esi + 0x28]
add esp, 0x18
cmp cx, word [ebp - 0x14]
mov dword [ebp + 8], eax
je 0x412809
cmp byte [ebp + 0x17], bl
jne 0x412809
cmp edi, 4
jne 0x412677
cmp eax, 0xffffffff
je 0x4126a6
cmp edi, 1
je 0x4126a6
cmp edi, 6
jne 0x412686
cmp eax, 0xffffffff
je 0x4126a6
cmp edi, 5
jne 0x412809
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x41282b
lea ecx, [ebp - 0x40]
call fcn.0041e62f
cmp dword [ebp + 8], 0xffffffff
jne 0x4126bb
push 0x481f94
jmp 0x4126cc
cmp dword [ebp + 8], ebx
jne 0x4126c7
push 0x481fa0
jmp 0x4126cc
push 0x481fac
lea ecx, [ebp - 0x40]
call fcn.0041e7ea
lea ecx, [ebp - 0x28]
call fcn.0041e62f
push 0x481f7c
lea ecx, [ebp - 0x28]
call fcn.0041e7ea
push ebx
push 0x42efb4
lea ecx, [ebp - 0x28]
call fcn.0041e8b1
push dword [ebp + 0xc]
mov ecx, 0x481f64
call fcn.0041f593
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041ecd1
add esp, 0xc
mov edi, 0x42ea2c
lea ecx, [ebp - 0x28]
push ebx
push edi
call fcn.0041e8b1
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x28]
push eax
call fcn.0041e92f
push ebx
push edi
lea ecx, [ebp - 0x28]
call fcn.0041e8b1
lea ecx, [ebp - 0x4c]
call fcn.0041f593
push eax
lea ecx, [ebp - 0x58]
call fcn.0041f593
push eax
mov ecx, 0x481f88
call fcn.0041f593
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041ecd1
add esp, 0x10
lea ecx, [ebp - 0x28]
push ebx
push edi
call fcn.0041e8b1
push 0x481f70
lea ecx, [ebp - 0x28]
call fcn.0041e92f
cmp dword [ebp - 0x34], ebx
jbe 0x4127a0
lea ecx, [ebp - 0x34]
call fcn.0041f593
push eax
mov ecx, 0x481b5c
call fcn.0041f593
push eax
lea eax, [ebp - 0x28]
push str._r_n_r_n_s__s
push eax
call fcn.0041ecd1
add esp, 0x10
mov ecx, 0x481868
call fcn.0041f593
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x28]
call fcn.0041f593
push eax
push edi
mov ecx, 0x4810c0
call fcn.0041da7b
cmp eax, 6
lea ecx, [ebp - 0x28]
jne 0x4127fc
call fcn.0041e765
lea ecx, [ebp - 0x40]
call fcn.0041e765
lea ecx, [ebp - 0x34]
call fcn.0041e765
lea ecx, [ebp - 0x4c]
call fcn.0041e765
lea ecx, [ebp - 0x58]
call fcn.0041e765
lea ecx, [ebp - 0x64]
jmp 0x412c1c
call fcn.0041e765
lea ecx, [ebp - 0x40]
jmp 0x412a57
cmp edi, 1
je 0x412844
cmp edi, 6
jne 0x412818
cmp eax, 1
je 0x412844
cmp edi, 2
je 0x4127dc
cmp edi, 4
je 0x412839
cmp edi, 5
jne 0x412a5c
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412a5c
jmp 0x4127dc
lea ecx, [ebp - 0x40]
call fcn.0041e62f
lea ecx, [ebp - 0x70]
call fcn.0041e62f
cmp dword [ebp + 8], 0xffffffff
jne 0x412861
push 0x481f94
jmp 0x412872
cmp dword [ebp + 8], ebx
jne 0x41286d
push 0x481fa0
jmp 0x412872
push 0x481fac
lea ecx, [ebp - 0x70]
call fcn.0041e7ea
push dword [ebp + 0xc]
mov ecx, 0x481f64
call fcn.0041f593
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0041ecd1
add esp, 0xc
mov ecx, 0x481f70
call fcn.0041f593
push eax
lea ecx, [ebp - 0x70]
call fcn.0041f593
push eax
lea eax, [ebp - 0x40]
push str._r_n_s_r_n_s
push eax
call fcn.0041ecd1
add esp, 0x10
cmp dword [ebp - 0x34], ebx
ja 0x4128c8
cmp dword [esi + 0x20], ebx
jne 0x4128c8
cmp dword [esi + 0x24], ebx
je 0x4128d6
push ebx
push 0x42ea2c
lea ecx, [ebp - 0x40]
call fcn.0041e8b1
cmp dword [ebp - 0x34], ebx
jbe 0x412900
lea ecx, [ebp - 0x34]
call fcn.0041f593
push eax
mov ecx, 0x481b5c
call fcn.0041f593
push eax
lea eax, [ebp - 0x40]
push str._r_n_s__s
push eax
call fcn.0041ecd1
add esp, 0x10
cmp dword [esi + 0x24], ebx
jne 0x41290e
cmp dword [esi + 0x20], ebx
je 0x412a13
push 0x481c94
lea ecx, [ebp - 0x28]
call fcn.0041e703
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041e84d
cmp al, 0x61
jl 0x412956
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041e84d
cmp al, 0x7a
jg 0x412956
push 1
push ebx
push ebx
lea ecx, [ebp - 0x28]
call fcn.0041e84d
sub al, 0x20
lea ecx, [ebp - 0x28]
push eax
push ebx
call fcn.0041e84d
push eax
lea ecx, [ebp - 0x28]
call fcn.0041f433
push ebx
push 0x42ef90
lea ecx, [ebp - 0x28]
call fcn.0041e8b1
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov edx, ecx
shr edx, 0x10
cmp dx, bx
je 0x412997
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.0041ecd1
add esp, 0x18
jmp 0x4129f1
cmp cx, bx
je 0x4129bb
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.0041ecd1
add esp, 0x14
jmp 0x4129f1
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp cx, bx
push eax
je 0x4129e0
movzx eax, cx
push eax
lea eax, [ebp - 0x28]
push str._d._d
push eax
call fcn.0041ecd1
add esp, 0x10
jmp 0x4129f1
lea eax, [ebp - 0x28]
push 0x42ef6c
push eax
call fcn.0041ecd1
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.0041f593
push eax
lea eax, [ebp - 0x40]
push str._r_n_s
push eax
call fcn.0041ecd1
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.0041e765
mov ecx, 0x481868
call fcn.0041f593
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov edi, dword [ecx + 8]
lea ecx, [ebp - 0x40]
call fcn.0041f593
push eax
push edi
mov ecx, 0x4810c0
call fcn.0041da7b
cmp eax, 6
lea ecx, [ebp - 0x70]
jne 0x412a4f
call fcn.0041e765
lea ecx, [ebp - 0x40]
jmp 0x4127d7
call fcn.0041e765
lea ecx, [ebp - 0x40]
call fcn.0041e765
test byte [0x4812a8], 0x10
je 0x412a7c
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.00411a6c
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.0041e765
lea ecx, [ebp - 0x4c]
call fcn.0041e765
lea ecx, [ebp - 0x58]
call fcn.0041e765
lea ecx, [ebp - 0x64]
call fcn.0041e765
jmp 0x412c37
mov eax, dword [esi + 8]
shr eax, 0xc
and eax, 0xf
je 0x412c2a
cmp eax, 3
je 0x412c2a
cmp eax, 4
je 0x412c2a
cmp eax, 2
je 0x412c21
cmp eax, 5
jne 0x412b01
add esi, 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412c2a
jmp 0x412c21
cmp eax, 1
jne 0x412b78
lea ecx, [ebp - 0x70]
call fcn.0041e62f
push dword [ebp + 0xc]
mov ecx, 0x481f64
call fcn.0041f593
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0041ecd1
add esp, 0xc
lea ecx, [ebp - 0x70]
push ebx
push 0x42ea2c
call fcn.0041e8b1
push 0x481f70
lea ecx, [ebp - 0x70]
call fcn.0041e92f
mov ecx, 0x481868
call fcn.0041f593
mov esi, dword [edi + 8]
push 0x34
push eax
lea ecx, [ebp - 0x70]
call fcn.0041f593
push eax
push esi
mov ecx, 0x4810c0
call fcn.0041da7b
cmp eax, 6
lea ecx, [ebp - 0x70]
jne 0x412aac
jmp 0x412c1c
cmp eax, 6
jne 0x412c37
add esi, 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
je 0x412c2a
lea ecx, [ebp - 0x64]
call fcn.0041e62f
push dword [ebp + 0xc]
mov ecx, 0x481f64
call fcn.0041f593
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0041ecd1
add esp, 0xc
mov edi, 0x42ea2c
lea ecx, [ebp - 0x64]
push ebx
push edi
call fcn.0041e8b1
push 0x481fac
lea ecx, [ebp - 0x64]
call fcn.0041e92f
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.0041e8b1
push 0x481f70
lea ecx, [ebp - 0x64]
call fcn.0041e92f
mov ecx, 0x481868
call fcn.0041f593
mov ecx, dword [ebp - 4]
push 0x34
push eax
mov esi, dword [ecx + 8]
lea ecx, [ebp - 0x64]
call fcn.0041f593
push eax
push esi
mov ecx, 0x4810c0
call fcn.0041da7b
cmp eax, 6
lea ecx, [ebp - 0x64]
jne 0x412c25
call fcn.0041e765
xor eax, eax
jmp 0x412c3a
call fcn.0041e765
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call fcn.00412413
pop ecx
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10