Function at 0x46cbe5
Capabilities:
Copy file
Delete file
Get common file path
Read .ini file
Set file attributes

Disassembly:
push 0x504
mov eax, 0x5adf32
call fcn.00588aeb
mov esi, ecx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x504]
call fcn.0046c3f7
push 7
xor edx, edx
pop ecx
xor eax, eax
mov dword [ebp - 4], edx
mov ebx, 0x100
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x460], edx
mov word [ebp - 0x470], ax
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x430], edx
mov word [ebp - 0x440], ax
mov dword [ebp - 0x444], ecx
mov dword [ebp - 0x448], edx
mov word [ebp - 0x458], ax
lea eax, [esi + 4]
mov ecx, eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x4f0], eax
call fcn.0041ed16
xor eax, eax
cmp word [edi], ax
je 0x46cc6e
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x458]
call fcn.00403cef
mov esi, 0x20a
push esi
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.00587a70
push esi
xor esi, esi
lea eax, [ebp - 0x21c]
push esi
push eax
call fcn.00587a70
add esp, 0x18
lea eax, [ebp - 0x428]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x46cd40
lea eax, [ebp - 0x21c]
push eax
push esi
push 0x5d4f60
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x46cd40
push esi
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
xor edi, edi
test eax, eax
je 0x46cd42
lea eax, [ebp - 0x21c]
push eax
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x80
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp word [ebp - 0x21c], si
jne 0x46cd1e
mov eax, edi
jmp 0x46cd2b
lea eax, [ebp - 0x21c]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.00403cef
jmp 0x46cd42
xor edi, edi
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push str.strTargetInfFile___1_s__IN_n
push str.CInfStringTable::GetTable
push 5
call fcn.00423f75
push 0x345
push str...CommonString.cpp
push 0x200
call fcn.0045976f
add esp, 0x1c
mov esi, eax
jmp 0x46ce09
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
push ecx
push 2
lea eax, [ebp - 0x508]
push eax
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push ebx
push esi
push str.Strings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
lea ecx, [ebx - 2]
cmp ecx, eax
jne 0x46cdfc
push esi
call fcn.00459786
add ebx, 0x100
mov dword [esp], 0x350
lea eax, [ebx + ebx]
push str...CommonString.cpp
push eax
call fcn.0045976f
add esp, 0xc
jmp 0x46cd7f
test eax, eax
jne 0x46ce11
push esi
call fcn.00459786
pop ecx
mov esi, edi
test esi, esi
jne 0x46cd86
cmp word [ebp - 0x21c], 0
je 0x46ce55
lea eax, [ebp - 0x21c]
push eax
push str.Delete_the_temp_file.___1_s___n
push str.CInfStringTable::GetTable
push 5
call fcn.00423f75
add esp, 0x10
lea eax, [ebp - 0x21c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x504]
test esi, esi
je 0x46ce6e
push esi
call fcn.0046d791
push esi
call fcn.00459786
pop ecx
jmp 0x46ce78
push 0x5d4d38
call fcn.0046d791
lea ecx, [ebp - 0x504]
call fcn.0046c815
test eax, eax
je 0x46cff3
mov ebx, dword [ebp - 0x4f0]
lea ecx, [ebp - 0x4ec]
call fcn.0046c45f
push edi
lea ecx, [ebp - 0x504]
mov byte [ebp - 4], 4
call fcn.0046cb38
inc eax
push eax
push edi
lea ecx, [ebp - 0x504]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x4ec]
call fcn.0046d810
lea ecx, [ebp - 0x4ec]
call fcn.0046cbb8
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x46cee1
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x440]
call fcn.00403cef
mov eax, dword [ebp - 0x430]
push 8
pop esi
cmp dword [ebp - 0x42c], esi
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
push fcn.00589557
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x440]
cmovae edx, dword [ebp - 0x440]
push edx
push eax
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
push ecx
lea eax, [ebp - 0x4f0]
push eax
call fcn.00405b31
add esp, 0x14
cmp dword [ebp - 0x42c], esi
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
cmp word [eax], 0x3b
jne 0x46cf81
cmp dword [ebp - 0x42c], esi
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push eax
push str.strKey.data_____1_s__skipped._n
push str.CInfStringTable::GetTable
push 5
call fcn.00423f75
add esp, 0x10
jmp 0x46cfd4
lea ecx, [ebp - 0x4ec]
call fcn.0046d696
mov esi, eax
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x4a0]
call fcn.00401069
push esi
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 5
call fcn.004010bc
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x510]
push eax
mov ecx, ebx
mov byte [ebp - 4], 6
call fcn.00405a09
lea ecx, [ebp - 0x4a0]
call fcn.0040723e
lea ecx, [ebp - 0x4ec]
call fcn.0046c517
lea ecx, [ebp - 0x504]
inc edi
call fcn.0046c815
cmp edi, eax
jb 0x46ce91
xor ebx, ebx
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x458]
call fcn.00403a7f
push ebx
push esi
lea ecx, [ebp - 0x440]
call fcn.00403a7f
push ebx
push esi
lea ecx, [ebp - 0x470]
call fcn.00403a7f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x504]
call fcn.0046c4a1
mov eax, esi
call fcn.00588a9a
ret 4