Function at 0x4138d7
Capabilities:
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push esi
mov ebx, ecx
mov esi, 0x481408
push edi
push 0xbc
mov ecx, esi
mov dword [ebp - 0x14], ebx
mov byte [0x482406], 1
call fcn.0041f167
push 0xc0
mov ecx, esi
mov dword [ebp - 0x48], eax
call fcn.0041f167
and byte [ebp - 1], 0
xor edi, edi
cmp dword [ebp - 0x48], edi
mov dword [0x482378], eax
mov dword [ebp - 0x18], edi
jbe 0x413fef
cmp byte [ebp - 1], 0
jne 0x41397d
cmp dword [ebp - 0x18], edi
jbe 0x41397d
mov eax, dword [0x42eef4]
mov edx, dword [0x4813a8]
mov ecx, eax
lea eax, [eax + edx - 1]
cmp eax, ecx
mov dword [0x42eef4], eax
jle 0x413969
or dword [ebp - 0x4c], 0xffffffff
dec eax
mov dword [0x42eef4], eax
lea eax, [ebp - 0x4c]
push eax
mov ecx, ebx
call fcn.004158dd
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x482408]
mov ecx, dword [0x4813a8]
mov eax, dword [eax + ecx*4 - 4]
mov dword [0x482378], eax
and byte [ebp - 1], 0
lea ecx, [ebp - 0x10]
mov dword [0x481864], edi
mov dword [0x48237c], edi
call fcn.0041e62f
lea eax, [ebp - 0xa8]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0041343d
test eax, eax
jl 0x413f80
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
lea eax, [eax + ecx*4 + 0x40]
add eax, dword [ebp - 0xa8]
add dword [0x482378], eax
mov eax, dword [0x482378]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00420653
cmp byte [0x4823f4], 0
pop ecx
jne 0x413a57
mov esi, 0x4810c0
push 9
mov ecx, esi
call fcn.0041c441
test al, al
jne 0x413a0d
push 0xa
mov ecx, esi
call fcn.0041c441
test al, al
je 0x413a57
mov eax, dword [0x4817b4]
cmp eax, 4
jne 0x413a37
mov eax, dword [ebp - 0xa4]
cmp eax, dword [0x481754]
jae 0x413f80
mov ecx, dword [0x481750]
shl eax, 4
cmp dword [eax + ecx], edi
jmp 0x413a43
cmp eax, 2
jne 0x413a4a
test byte [ebp - 0xa0], 3
jne 0x413a57
jmp 0x413f80
test byte [ebp - 0xa0], 1
je 0x413f80
push dword [ebp - 0x68]
call fcn.0041486a
test al, al
pop ecx
jne 0x413a72
push dword [ebp - 0x70]
call fcn.00416ea5
pop ecx
jmp 0x413f80
lea ecx, [ebp - 0x38]
call fcn.0041e62f
test byte [ebp - 0x9c], 2
je 0x413aae
lea eax, [ebp - 1]
mov ecx, ebx
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0041312b
cmp eax, edi
je 0x413f78
cmp eax, 0xffffffff
je 0x413fa3
push 2
pop esi
lea eax, [ebp - 0x10]
mov ecx, 0x4810c0
push eax
call fcn.00418851
lea eax, [ebp - 0x10]
mov ecx, 0x4810c0
push eax
call fcn.0041cf5a
lea eax, [ebp - 0x10]
push 0x7fffffff
push eax
mov ecx, 0x4810c0
call fcn.0041dbff
dec esi
jne 0x413ab1
push 1
push edi
mov esi, 0x42eb7c
push 2
push esi
push 0x42f064
lea ecx, [ebp - 0x10]
call fcn.0041f463
push 1
push edi
push esi
lea ecx, [ebp - 0x10]
call fcn.0041f045
push eax
push edi
lea ecx, [ebp - 0x10]
call fcn.0041f4ff
push eax
lea ecx, [ebp - 0x44]
call fcn.0041e703
cmp dword [ebp - 0x44], 3
jbe 0x413b39
push edi
lea ecx, [ebp - 0x44]
call fcn.0041f593
push eax
call fcn.0040ed76
pop ecx
test al, al
pop ecx
je 0x413fb7
lea ecx, [ebp - 0x44]
call fcn.0041f593
push eax
call fcn.0040f0b8
test al, al
pop ecx
je 0x413fb7
lea ecx, [ebp - 0x44]
call fcn.0041f593
push eax
mov ecx, ebx
call fcn.00416d7d
test al, al
je 0x413f9b
cmp dword [0x481764], edi
je 0x413b98
push 0xc
call fcn.00427db9
cmp eax, edi
pop ecx
je 0x413b89
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.0041e703
jmp 0x413b8b
xor eax, eax
push 0xffffffffffffffff
push eax
mov ecx, 0x48178c
call fcn.004216a5
cmp byte [0x4823f4], 0
jne 0x413c1b
push 0x481f58
lea ecx, [ebp - 0xc0]
call fcn.0041e703
push 0x20
lea ecx, [ebp - 0xc0]
call fcn.0041e862
lea ecx, [ebp - 0x58]
call fcn.0041e62f
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f593
push eax
call fcn.0042130d
pop ecx
lea eax, [ebp - 0x58]
pop ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.0041e92f
lea ecx, [ebp - 0xc0]
call fcn.0041f593
push eax
push 0x14
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004213b9
pop ecx
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0041e765
lea ecx, [ebp - 0xc0]
call fcn.0041e765
lea ecx, [ebp - 0x64]
xor bl, bl
mov dword [ebp - 0x28], edi
call fcn.0041e62f
lea ecx, [ebp - 0x24]
call fcn.0041e62f
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call fcn.0040f0b8
test al, al
pop ecx
je 0x413ce1
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
and al, 0xfe
push eax
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc8]
push eax
inc bl
call fcn.0041f593
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.004124f6
test eax, eax
jne 0x413ca5
push esi
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x413cbd
lea eax, [ebp - 0x64]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00416923
test eax, eax
jne 0x413ccb
push dword [ebp - 0x70]
call fcn.00416ea5
pop ecx
jmp 0x413f60
cmp dword [ebp - 0x28], 1
jne 0x413ce1
and dword [ebp - 0x98], 0xfffffffd
xor bl, bl
and dword [ebp - 0x9c], 0xffffff9f
test byte [ebp - 0x98], 2
je 0x413d07
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x10]
shr eax, 5
and al, 1
push eax
call fcn.0041f593
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00415ed2
test byte [ebp - 0x9c], 0x80
jne 0x413d14
test bl, bl
jne 0x413d3e
test byte [ebp - 0x98], 2
jne 0x413d3e
test byte [ebp - 0x9c], 0x40
jne 0x413d3e
lea ecx, [ebp - 0x10]
call fcn.0041f593
push 0x48191c
push eax
mov ecx, 0x481910
call fcn.00424c25
test byte [0x4812a4], 6
je 0x413df8
lea ecx, [ebp - 0xb4]
call fcn.0041e62f
mov eax, dword [ebp - 0x10]
push 3
add eax, 0xfffffffd
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f4ff
push eax
lea ecx, [ebp - 0xb4]
call fcn.0041e7ea
lea ecx, [ebp - 0xb4]
call fcn.0041f5dd
push 1
push 0x42f060
lea ecx, [ebp - 0xb4]
call fcn.0041ea64
test al, al
je 0x413db1
test byte [0x4812a4], 4
je 0x413db1
test byte [ebp - 0x9b], 1
jne 0x413ded
lea eax, [ebp - 0x10]
mov esi, 0x481704
push eax
jmp 0x413dd9
push 1
push 0x42f05c
lea ecx, [ebp - 0xb4]
call fcn.0041ea64
test al, al
je 0x413ded
test byte [0x4812a4], 2
je 0x413ded
lea eax, [ebp - 0x10]
mov esi, 0x4816f8
push eax
mov ecx, esi
call fcn.0041e92f
push edi
push 0x42ea2c
mov ecx, esi
call fcn.0041e8b1
lea ecx, [ebp - 0xb4]
call fcn.0041e765
cmp dword [ebp - 0x70], edi
mov byte [ebp - 1], 1
jne 0x413e2c
push edi
push 0x80
push 2
push edi
push 1
push 0xc0000000
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x413f04
mov eax, dword [ebp - 0x9c]
and eax, 1
jne 0x413e8a
test byte [ebp - 0x9c], 2
jne 0x413e8a
cmp byte [0x42eeec], 0
mov ecx, 0x481858
jne 0x413e53
mov ecx, 0x481828
call fcn.0041f593
push dword [ebp - 0x70]
lea ecx, [ebp - 0x10]
mov esi, eax
push dword [ebp - 0x2c]
call fcn.0041f593
push eax
push esi
call fcn.00401ac0
add esp, 0x10
test eax, eax
jne 0x413eab
mov eax, dword [0x481864]
sub eax, dword [0x48237c]
push eax
call fcn.00416ea5
pop ecx
jmp 0x413f04
cmp eax, edi
je 0x413ee1
push 1
lea ecx, [ebp - 0x10]
push dword [ebp - 0x70]
push dword [ebp - 0x2c]
call fcn.0041f593
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00411fc4
test al, al
jne 0x413f04
and byte [ebp - 1], 0
cmp dword [ebp - 0x24], edi
jbe 0x413f60
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
lea ecx, [ebp - 0x24]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x413f60
test byte [ebp - 0x9c], 2
je 0x413f04
lea ecx, [ebp - 0x10]
call fcn.0041f593
push eax
lea ecx, [ebp - 0x38]
call fcn.0041f593
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00415aa1
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x10]
push eax
call fcn.0041f593
mov ecx, dword [ebp - 0x14]
push eax
call fcn.004163e7
cmp dword [ebp - 0x24], edi
jbe 0x413f30
lea ecx, [ebp - 0x24]
call fcn.0041f593
push eax
call fcn.0040e99b
pop ecx
cmp dword [ebp - 0x28], 2
jne 0x413f48
push 4
push edi
lea ecx, [ebp - 0x64]
call fcn.0041f593
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test byte [ebp - 0x9c], 0x20
je 0x413f60
push dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.004119f8
lea ecx, [ebp - 0x24]
call fcn.0041e765
lea ecx, [ebp - 0x64]
call fcn.0041e765
lea ecx, [ebp - 0x44]
call fcn.0041e765
lea ecx, [ebp - 0x38]
call fcn.0041e765
lea ecx, [ebp - 0x10]
call fcn.0041e765
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x48]
jae 0x413fef
mov ebx, dword [ebp - 0x14]
jmp 0x413926
lea ecx, [ebp - 0x44]
call fcn.0041e765
lea ecx, [ebp - 0x38]
call fcn.0041e765
lea ecx, [ebp - 0x10]
call fcn.0041e765
xor al, al
jmp 0x413ff8
push str.Failure_while_trying_to_install_file
lea ecx, [ebp - 0x58]
call fcn.0041e69f
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x58]
push eax
call fcn.0041e92f
push edi
lea ecx, [ebp - 0x58]
call fcn.0041f593
push eax
push edi
mov ecx, 0x4810c0
call fcn.0041da57
lea ecx, [ebp - 0x58]
call fcn.0041e765
jmp 0x413f9b
and byte [0x482406], 0
mov al, 1
pop edi
pop esi
pop ebx
leave
ret