Function at 0x4136a4
Capabilities:
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
push ebx
push esi
mov dword [ebp - 0x14], ecx
mov esi, 0x4813b8
push edi
push 0xbc
mov ecx, esi
mov byte [0x4823aa], 1
call fcn.0041ecff
push 0xc0
mov ecx, esi
mov dword [ebp - 0x40], eax
call fcn.0041ecff
and byte [ebp - 1], 0
xor esi, esi
cmp dword [ebp - 0x40], esi
mov dword [0x482320], eax
mov dword [ebp - 0x18], esi
jbe 0x413d51
cmp byte [ebp - 1], 0
jne 0x413749
cmp dword [ebp - 0x18], esi
jbe 0x413749
mov eax, dword [0x42eef4]
mov edx, dword [0x481358]
mov ecx, eax
lea eax, [eax + edx - 1]
cmp eax, ecx
mov dword [0x42eef4], eax
jle 0x413735
or dword [ebp - 0x3c], 0xffffffff
mov ecx, dword [ebp - 0x14]
dec eax
mov dword [0x42eef4], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00415615
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4823ac]
mov ecx, dword [0x481358]
mov eax, dword [eax + ecx*4 - 4]
mov dword [0x482320], eax
and byte [ebp - 1], 0
lea ecx, [ebp - 0x10]
mov dword [0x48180c], esi
mov dword [0x482324], esi
call fcn.0041e1c7
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0041320a
test eax, eax
jl 0x413ce6
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
lea eax, [eax + ecx*4 + 0x40]
add eax, dword [ebp - 0x5c]
add dword [0x482320], eax
mov eax, dword [0x482320]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00420199
cmp byte [0x48239c], 0
pop ecx
jne 0x41381a
mov ebx, 0x481080
push 9
mov ecx, ebx
call fcn.0041bfe7
test al, al
jne 0x4137d4
push 0xa
mov ecx, ebx
call fcn.0041bfe7
test al, al
je 0x41381f
mov eax, dword [0x481764]
cmp eax, 4
jne 0x4137fe
mov eax, dword [ebp - 0x9c]
cmp eax, dword [0x481704]
jae 0x413ce6
mov ecx, dword [0x481700]
shl eax, 4
cmp dword [eax + ecx], esi
jmp 0x413813
cmp eax, 2
jne 0x41380c
test byte [ebp - 0x98], 3
jmp 0x413813
test byte [ebp - 0x98], 1
jne 0x41381f
jmp 0x413ce6
mov ebx, 0x481080
push dword [ebp - 0x60]
call fcn.004145cc
test al, al
pop ecx
jne 0x41383a
push dword [ebp - 0x68]
call fcn.00416bbb
pop ecx
jmp 0x413ce6
lea ecx, [ebp - 0x2c]
call fcn.0041e1c7
test byte [ebp - 0x94], 2
je 0x413877
lea eax, [ebp - 1]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.00412efe
cmp eax, esi
je 0x413cde
cmp eax, 0xffffffff
je 0x413d08
lea eax, [ebp - 0x10]
mov ecx, ebx
push eax
call fcn.0041843c
lea eax, [ebp - 0x10]
mov ecx, ebx
push eax
call fcn.0041cafa
lea eax, [ebp - 0x10]
push 0x7fffffff
push eax
mov ecx, ebx
call fcn.0041d79d
push 1
lea ecx, [ebp - 0x10]
pop edi
push edi
push esi
mov esi, 0x42eb7c
push 2
push esi
push 0x42f05c
call fcn.0041effb
push edi
push 0
push esi
lea ecx, [ebp - 0x10]
call fcn.0041ebdd
xor esi, esi
push eax
push esi
lea ecx, [ebp - 0x10]
call fcn.0041f097
push eax
lea ecx, [ebp - 0x38]
call fcn.0041e29b
cmp dword [ebp - 0x38], 3
jbe 0x4138f7
push esi
lea ecx, [ebp - 0x38]
call fcn.0041f120
push eax
call fcn.0040ec7b
pop ecx
test al, al
pop ecx
je 0x413d1c
lea ecx, [ebp - 0x38]
call fcn.0041f120
push eax
call fcn.0040efbd
test al, al
pop ecx
je 0x413d1c
lea ecx, [ebp - 0x38]
call fcn.0041f120
mov ebx, dword [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.00416a93
test al, al
je 0x413d00
cmp dword [0x481714], esi
je 0x413959
push 0xc
call fcn.00427869
cmp eax, esi
pop ecx
je 0x41394a
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.0041e29b
jmp 0x41394c
xor eax, eax
push 0xffffffffffffffff
push eax
mov ecx, 0x481738
call fcn.004211eb
cmp byte [0x48239c], 0
jne 0x4139dc
push 0x481f00
lea ecx, [ebp - 0xb4]
call fcn.0041e29b
push 0x20
lea ecx, [ebp - 0xb4]
call fcn.0041e3fa
lea ecx, [ebp - 0x4c]
call fcn.0041e1c7
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f120
push eax
call fcn.00420e53
pop ecx
lea eax, [ebp - 0x4c]
pop ecx
push eax
lea ecx, [ebp - 0xb4]
call fcn.0041e4c7
lea ecx, [ebp - 0xb4]
call fcn.0041f120
push eax
push 0x14
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00420eff
pop ecx
pop ecx
lea ecx, [ebp - 0x4c]
call fcn.0041e2fd
lea ecx, [ebp - 0xb4]
call fcn.0041e2fd
test byte [ebp - 0x90], 2
je 0x413a01
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x10]
shr eax, 5
and al, 1
push eax
call fcn.0041f120
push eax
mov ecx, ebx
call fcn.00415c07
lea ecx, [ebp - 0x58]
xor bl, bl
mov dword [ebp - 0x20], esi
call fcn.0041e1c7
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
call fcn.0040efbd
test al, al
pop ecx
je 0x413abc
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
and al, 0xfe
push eax
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0x10]
push eax
inc bl
call fcn.0041f120
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004122cd
test eax, eax
jne 0x413a7f
push esi
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x413a97
lea eax, [ebp - 0x58]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00416639
test eax, eax
jne 0x413aa5
push dword [ebp - 0x68]
call fcn.00416bbb
pop ecx
jmp 0x413cce
cmp dword [ebp - 0x20], edi
jne 0x413aba
and dword [ebp - 0x90], 0xfffffffd
xor bl, bl
and dword [ebp - 0x94], 0xffffff9f
xor esi, esi
test byte [ebp - 0x94], 0x80
jne 0x413ac9
test bl, bl
jne 0x413af3
test byte [ebp - 0x90], 2
jne 0x413af3
test byte [ebp - 0x94], 0x40
jne 0x413af3
lea ecx, [ebp - 0x10]
call fcn.0041f120
push 0x4818c4
push eax
mov ecx, 0x4818b8
call fcn.004246df
test byte [0x481254], 6
je 0x413bab
lea ecx, [ebp - 0xa8]
call fcn.0041e1c7
mov eax, dword [ebp - 0x10]
push 3
add eax, 0xfffffffd
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f097
push eax
lea ecx, [ebp - 0xa8]
call fcn.0041e382
lea ecx, [ebp - 0xa8]
call fcn.0041f16a
push edi
push 0x42f058
lea ecx, [ebp - 0xa8]
call fcn.0041e5fc
test al, al
je 0x413b65
test byte [0x481254], 4
je 0x413b65
test byte [ebp - 0x93], 1
jne 0x413ba0
lea eax, [ebp - 0x10]
mov ebx, 0x4816b4
push eax
jmp 0x413b8c
push edi
push 0x42f054
lea ecx, [ebp - 0xa8]
call fcn.0041e5fc
test al, al
je 0x413ba0
test byte [0x481254], 2
je 0x413ba0
lea eax, [ebp - 0x10]
mov ebx, 0x4816a8
push eax
mov ecx, ebx
call fcn.0041e4c7
push esi
push 0x42ea8c
mov ecx, ebx
call fcn.0041e449
lea ecx, [ebp - 0xa8]
call fcn.0041e2fd
cmp dword [ebp - 0x68], esi
mov byte [ebp - 1], 1
jne 0x413bde
push esi
push 0x80
push 2
push esi
push edi
push 0xc0000000
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x413c86
mov eax, dword [ebp - 0x94]
and eax, edi
jne 0x413c3d
test byte [ebp - 0x94], 2
jne 0x413c3d
cmp byte [0x42eeec], 0
mov ecx, 0x481800
jne 0x413c04
mov ecx, 0x4817d0
call fcn.0041f120
push dword [ebp - 0x68]
lea ecx, [ebp - 0x10]
mov esi, eax
push dword [ebp - 0x1c]
call fcn.0041f120
push eax
push esi
call fcn.00401ac0
add esp, 0x10
test eax, eax
jne 0x413c5d
mov eax, dword [0x48180c]
sub eax, dword [0x482324]
push eax
call fcn.00416bbb
pop ecx
xor esi, esi
jmp 0x413c86
cmp eax, esi
je 0x413c63
push edi
lea ecx, [ebp - 0x10]
push dword [ebp - 0x68]
push dword [ebp - 0x1c]
call fcn.0041f120
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00411eaf
test al, al
jne 0x413c86
and byte [ebp - 1], 0
jmp 0x413cce
test byte [ebp - 0x94], 2
je 0x413c86
lea ecx, [ebp - 0x10]
call fcn.0041f120
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041f120
mov ecx, dword [ebp - 0x14]
push eax
call fcn.004157d9
lea eax, [ebp - 0x9c]
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f120
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00416112
cmp dword [ebp - 0x20], 2
jne 0x413cb6
push 4
push esi
lea ecx, [ebp - 0x58]
call fcn.0041f120
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test byte [ebp - 0x94], 0x20
je 0x413cce
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.004118e3
lea ecx, [ebp - 0x58]
call fcn.0041e2fd
lea ecx, [ebp - 0x38]
call fcn.0041e2fd
lea ecx, [ebp - 0x2c]
call fcn.0041e2fd
lea ecx, [ebp - 0x10]
call fcn.0041e2fd
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x40]
jae 0x413d51
xor esi, esi
jmp 0x4136f1
lea ecx, [ebp - 0x38]
call fcn.0041e2fd
lea ecx, [ebp - 0x2c]
call fcn.0041e2fd
lea ecx, [ebp - 0x10]
call fcn.0041e2fd
xor al, al
jmp 0x413d5a
push str.Failure_while_trying_to_install_file
lea ecx, [ebp - 0x4c]
call fcn.0041e237
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x4c]
push eax
call fcn.0041e4c7
push esi
lea ecx, [ebp - 0x4c]
call fcn.0041f120
push eax
push esi
mov ecx, ebx
call fcn.0041d5f5
lea ecx, [ebp - 0x4c]
call fcn.0041e2fd
jmp 0x413d00
and byte [0x4823aa], 0
mov al, 1
pop edi
pop esi
pop ebx
leave
ret