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

Disassembly:
push 0x558
mov eax, 0x5adfc8
call fcn.00588aeb
mov ebx, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x55c], eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x558]
mov dword [ebp - 0x540], eax
call fcn.0046c3f7
push 7
xor edx, edx
pop ecx
xor eax, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x53c], 0x100
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_
lea edi, [ebp - 0x28]
push 7
rep movsd dword es:[edi], dword [esi]
pop esi
mov dword [ebp - 0x4a4], esi
mov dword [ebp - 0x4a8], edx
mov word [ebp - 0x4b8], ax
mov byte [ebp - 4], 4
call fcn.00472cf7
lea ecx, [ebp - 0x538]
push eax
call fcn.00405b90
lea eax, [ebx + 4]
mov ecx, eax
mov dword [ebp - 0x544], eax
call fcn.0041ed16
xor edi, edi
xor eax, eax
mov dword [ebp - 0x45c], esi
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 0x46d125
mov eax, edi
jmp 0x46d12c
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x470]
call fcn.00403cef
mov esi, 0x20a
push esi
lea eax, [ebp - 0x440]
push edi
push eax
call fcn.00587a70
push esi
xor esi, esi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.00587a70
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 0x46d1f7
lea eax, [ebp - 0x234]
push eax
push esi
push 0x5d4f60
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x46d1f7
push esi
lea eax, [ebp - 0x234]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x46d1f7
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 0x46d1d7
mov eax, esi
jmp 0x46d1e4
lea eax, [ebp - 0x234]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x470]
call fcn.00403cef
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.00423f75
push 0x3ae
push str...CommonString.cpp
push 0x200
call fcn.0045976f
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x46d2d9
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 0x46d2be
push esi
call fcn.00459786
add ebx, 0x100
mov dword [esp], 0x3b9
lea eax, [ebx + ebx]
push str...CommonString.cpp
push eax
call fcn.0045976f
add esp, 0xc
mov esi, eax
jmp 0x46d2cb
test eax, eax
jne 0x46d2d3
push esi
call fcn.00459786
pop ecx
mov esi, edi
test esi, esi
jne 0x46d246
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp word [ebp - 0x234], 0
je 0x46d319
lea eax, [ebp - 0x234]
push eax
push str.Delete_the_temp_file.___1_lS___n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00423f75
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 0x46d3bb
call fcn.0046c7a4
xor ebx, ebx
mov edi, esi
cmp word [esi], bx
je 0x46d3b2
cmp word [edi], bx
jne 0x46d33e
mov eax, ebx
jmp 0x46d345
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00403cef
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.00423f75
add esp, 0x10
cmp dword [ebp - 0x48c], 8
lea eax, [ebp - 0x4a0]
cmovae eax, dword [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x558]
call fcn.0046c58f
push ebx
push edi
call fcn.0058afc5
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x46d3b2
add edi, 2
cmp word [edi], bx
jne 0x46d33e
push esi
call fcn.00459786
pop ecx
jmp 0x46d3c7
push 0x5d4d38
call fcn.0046d791
xor ebx, ebx
lea ecx, [ebp - 0x558]
mov edi, ebx
call fcn.0046c815
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x46d631
lea ecx, [ebp - 0x534]
call fcn.0046c45f
push edi
lea ecx, [ebp - 0x558]
mov byte [ebp - 4], 7
call fcn.0046cb38
inc eax
push eax
push edi
lea ecx, [ebp - 0x558]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x534]
call fcn.0046d810
lea ecx, [ebp - 0x534]
call fcn.0046cbb8
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x46d432
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x458]
call fcn.00403cef
lea ecx, [ebp - 0x534]
call fcn.0046d696
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x46d45a
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x488]
call fcn.00403cef
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x448]
lea ecx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
push fcn.00589557
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x458]
cmovae edx, dword [ebp - 0x458]
push edx
push eax
lea ecx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
push ecx
lea eax, [ebp - 0x53c]
push eax
call fcn.00405b31
add esp, 0x14
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
cmp word [eax], 0x3b
jne 0x46d4fd
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.00423f75
add esp, 0x10
jmp 0x46d610
cmp word [ebp - 0x28], 0
jne 0x46d508
xor eax, eax
jmp 0x46d512
lea eax, [ebp - 0x28]
push eax
call fcn.00588144
pop ecx
push eax
push 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x488]
call fcn.0041fa55
test eax, eax
jne 0x46d5c0
cmp dword [ebp - 0x478], 0xb
jbe 0x46d5c0
mov ebx, dword [ebp - 0x540]
test ebx, ebx
je 0x46d5c0
cmp dword [ebp - 0x474], 8
lea esi, [ebp - 0x488]
cmovae esi, dword [ebp - 0x488]
add esi, 0x16
cmp word [esi], ax
je 0x46d566
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4b8]
call fcn.00403cef
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.0041b924
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x46d5c0
xor eax, eax
cmp word [esi], ax
je 0x46d5b3
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x488]
call fcn.00403cef
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00401069
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x4d0]
mov byte [ebp - 4], 8
call fcn.00401069
mov ecx, dword [ebp - 0x544]
lea eax, [ebp - 0x4e8]
push eax
lea eax, [ebp - 0x560]
push eax
mov byte [ebp - 4], 9
call fcn.00405a09
lea ecx, [ebp - 0x4e8]
call fcn.0040723e
lea ecx, [ebp - 0x534]
call fcn.0046c517
lea ecx, [ebp - 0x558]
inc edi
call fcn.0046c815
cmp edi, eax
jb 0x46d3e2
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x470]
call fcn.00403a7f
lea ecx, [esi - 0x10]
call fcn.0041c730
push ebx
push edi
lea ecx, [ebp - 0x4b8]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x488]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x458]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00403a7f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x558]
call fcn.0046c4a1
mov eax, edi
call fcn.00588a9a
ret 8