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

Disassembly:
push 0x558
mov eax, 0x5b4ef6
call fcn.0058f792
mov ebx, ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x558]
mov dword [ebp - 0x55c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x540], eax
call fcn.0046d53c
push 7
xor edx, edx
mov dword [ebp - 0x53c], 0x100
pop ecx
xor eax, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x490], edx
mov word [ebp - 0x4a0], ax
mov dword [ebp - 0x444], ecx
mov dword [ebp - 0x448], edx
mov word [ebp - 0x458], ax
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x478], edx
mov word [ebp - 0x488], ax
push 6
pop ecx
mov esi, str.RESOURCEID_
mov dword [ebp - 0x4a8], edx
lea edi, [ebp - 0x28]
mov word [ebp - 0x4b8], ax
rep movsd dword es:[edi], dword [esi]
push 7
pop esi
mov dword [ebp - 0x4a4], esi
mov byte [ebp - 4], 4
call fcn.00473f1b
push eax
lea ecx, [ebp - 0x538]
call fcn.00406a4a
lea eax, [ebx + 4]
mov ecx, eax
mov dword [ebp - 0x544], eax
call fcn.0041fc8b
xor edi, edi
mov dword [ebp - 0x45c], esi
xor eax, eax
mov dword [ebp - 0x460], edi
mov word [ebp - 0x470], ax
mov ebx, dword [ebp - 0x55c]
mov byte [ebp - 4], 6
cmp word [ebx], di
jne 0x46e275
mov eax, edi
jmp 0x46e27c
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x470]
call fcn.00404be0
mov esi, 0x20a
lea eax, [ebp - 0x440]
push esi
push edi
push eax
call fcn.0058e700
push esi
xor esi, esi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0058e700
add esp, 0x18
lea eax, [ebp - 0x440]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x46e347
lea eax, [ebp - 0x234]
push eax
push esi
push 0x5dafc0
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x46e347
push esi
lea eax, [ebp - 0x234]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x46e347
lea eax, [ebp - 0x234]
push eax
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x80
lea eax, [ebp - 0x234]
push eax
call edi
cmp word [ebp - 0x234], si
jne 0x46e327
mov eax, esi
jmp 0x46e334
lea eax, [ebp - 0x234]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x470]
call fcn.00404be0
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
cmovae eax, dword [ebp - 0x470]
push eax
push str.strTargetInfFile___1_lS__IN_n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00424dad
push 0x3ae
push str...CommonString.cpp
push 0x200
call fcn.0045a88d
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x46e429
mov ebx, dword [ebp - 0x53c]
xor edi, edi
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
cmovae eax, dword [ebp - 0x470]
push eax
push 2
lea eax, [ebp - 0x564]
push eax
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
cmovae eax, dword [ebp - 0x470]
push eax
push ebx
push esi
push str.Strings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
lea ecx, [ebx - 2]
cmp ecx, eax
jne 0x46e40e
push esi
call fcn.0045a8a4
add ebx, 0x100
mov dword [esp], 0x3b9
push str...CommonString.cpp
lea eax, [ebx + ebx]
push eax
call fcn.0045a88d
add esp, 0xc
mov esi, eax
jmp 0x46e41b
test eax, eax
jne 0x46e423
push esi
call fcn.0045a8a4
pop ecx
mov esi, edi
test esi, esi
jne 0x46e396
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp word [ebp - 0x234], 0
je 0x46e469
lea eax, [ebp - 0x234]
push eax
push str.Delete_the_temp_file.___1_lS___n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x234]
push 0x80
push eax
call edi
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x558]
test esi, esi
je 0x46e50b
call fcn.0046d8ee
xor ebx, ebx
mov edi, esi
cmp word [esi], bx
je 0x46e502
cmp word [edi], bx
jne 0x46e48e
mov eax, ebx
jmp 0x46e495
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00404be0
cmp dword [ebp - 0x48c], 8
lea eax, [ebp - 0x4a0]
cmovae eax, dword [ebp - 0x4a0]
push eax
push str.strItem____1_s___n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x4a0]
cmp dword [ebp - 0x48c], 8
lea ecx, [ebp - 0x558]
cmovae eax, dword [ebp - 0x4a0]
push eax
call fcn.0046d6d9
push ebx
push edi
call fcn.00591c76
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x46e502
add edi, 2
cmp word [edi], bx
jne 0x46e48e
push esi
call fcn.0045a8a4
pop ecx
jmp 0x46e517
push 0x5dad98
call fcn.0046e8e1
xor ebx, ebx
lea ecx, [ebp - 0x558]
mov edi, ebx
call fcn.0046d95f
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x46e781
lea ecx, [ebp - 0x534]
call fcn.0046d5a4
push edi
lea ecx, [ebp - 0x558]
mov byte [ebp - 4], 7
call fcn.0046dc88
inc eax
lea ecx, [ebp - 0x558]
push eax
push edi
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x534]
call fcn.0046e960
lea ecx, [ebp - 0x534]
call fcn.0046dd08
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x46e582
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x458]
call fcn.00404be0
lea ecx, [ebp - 0x534]
call fcn.0046e7e6
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x46e5aa
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x488]
call fcn.00404be0
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
mov eax, dword [ebp - 0x448]
lea edx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
cmovae edx, dword [ebp - 0x458]
push fcn.00590202
push edx
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
lea eax, [ebp - 0x53c]
push ecx
push eax
call fcn.004069eb
add esp, 0x14
lea eax, [ebp - 0x458]
cmp dword [ebp - 0x444], 8
cmovae eax, dword [ebp - 0x458]
cmp word [eax], 0x3b
jne 0x46e64d
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push str.strKey.data_____1_s__skipped._n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00424dad
add esp, 0x10
jmp 0x46e760
cmp word [ebp - 0x28], 0
jne 0x46e658
xor eax, eax
jmp 0x46e662
lea eax, [ebp - 0x28]
push eax
call fcn.0058edd4
pop ecx
push eax
push 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x488]
call fcn.00420923
test eax, eax
jne 0x46e710
cmp dword [ebp - 0x478], 0xb
jbe 0x46e710
mov ebx, dword [ebp - 0x540]
test ebx, ebx
je 0x46e710
cmp dword [ebp - 0x474], 8
lea esi, [ebp - 0x488]
cmovae esi, dword [ebp - 0x488]
add esi, 0x16
cmp word [esi], ax
je 0x46e6b6
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4b8]
call fcn.00404be0
cmp dword [ebp - 0x4a4], 8
lea eax, [ebp - 0x4b8]
cmovae eax, dword [ebp - 0x4b8]
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntW]
push eax
push ebx
lea ecx, [ebp - 0x538]
call fcn.0041c8de
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x46e710
xor eax, eax
cmp word [esi], ax
je 0x46e703
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x488]
call fcn.00404be0
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00401bb9
lea eax, [ebp - 0x488]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x4d0]
call fcn.00401bb9
mov ecx, dword [ebp - 0x544]
lea eax, [ebp - 0x4e8]
push eax
lea eax, [ebp - 0x560]
mov byte [ebp - 4], 9
push eax
call fcn.004068f0
lea ecx, [ebp - 0x4e8]
call fcn.00407af3
lea ecx, [ebp - 0x534]
call fcn.0046d661
lea ecx, [ebp - 0x558]
inc edi
call fcn.0046d95f
cmp edi, eax
jb 0x46e532
xor ebx, ebx
xor edi, edi
lea ecx, [ebp - 0x470]
push ebx
inc edi
push edi
call fcn.00404970
lea ecx, [esi - 0x10]
call fcn.0041d6f2
push ebx
push edi
lea ecx, [ebp - 0x4b8]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x488]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x458]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00404970
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x558]
call fcn.0046d5eb
mov eax, edi
call fcn.0058f741
ret 8