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

Disassembly:
push 0x558
mov eax, 0x44c19e
call fcn.004386f7
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.00430f14
push 7
xor edx, edx
pop ecx
xor eax, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x53c], pe_nt_image_headers32
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
push 0x4676b0
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 4
call fcn.0040620b
lea eax, [ebx + 4]
mov ecx, eax
mov dword [ebp - 0x544], eax
call fcn.00405480
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 0x431c41
mov eax, edi
jmp 0x431c48
push ebx
call fcn.0043860f
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x470]
call fcn.00401db2
mov esi, 0x20a
push esi
lea eax, [ebp - 0x440]
push edi
push eax
call fcn.00438dc0
push esi
xor esi, esi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.00438dc0
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 0x431d13
lea eax, [ebp - 0x234]
push eax
push esi
push 0x457c68
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x431d13
push esi
lea eax, [ebp - 0x234]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x431d13
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 0x431cf3
mov eax, esi
jmp 0x431d00
lea eax, [ebp - 0x234]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x470]
call fcn.00401db2
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.00405a24
push 0x3ae
push str...CommonString.cpp
push 0x200
call fcn.0042ae50
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x431df5
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 0x431dda
push esi
call fcn.0042afb6
add ebx, 0x100
mov dword [esp], 0x3b9
lea eax, [ebx + ebx]
push str...CommonString.cpp
push eax
call fcn.0042ae50
add esp, 0xc
mov esi, eax
jmp 0x431de7
test eax, eax
jne 0x431def
push esi
call fcn.0042afb6
pop ecx
mov esi, edi
test esi, esi
jne 0x431d62
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp word [ebp - 0x234], 0
je 0x431e35
lea eax, [ebp - 0x234]
push eax
push str.Delete_the_temp_file.___1_lS___n
push str.CInfStringTable::GetTableWFN
push 5
call fcn.00405a24
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 0x431ed7
call fcn.004312c1
xor ebx, ebx
mov edi, esi
cmp word [esi], bx
je 0x431ece
cmp word [edi], bx
jne 0x431e5a
mov eax, ebx
jmp 0x431e61
push edi
call fcn.0043860f
pop ecx
push eax
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00401db2
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.00405a24
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.004310ac
push ebx
push edi
call fcn.0043aa09
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x431ece
add edi, 2
cmp word [edi], bx
jne 0x431e5a
push esi
call fcn.0042afb6
pop ecx
jmp 0x431ee3
push 0x457a40
call fcn.004322ad
xor ebx, ebx
lea ecx, [ebp - 0x558]
mov edi, ebx
call fcn.00431332
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x43214d
lea ecx, [ebp - 0x534]
call fcn.00430f7c
push edi
lea ecx, [ebp - 0x558]
mov byte [ebp - 4], 7
call fcn.00431655
inc eax
push eax
push edi
lea ecx, [ebp - 0x558]
call fcn.004315c5
push eax
lea ecx, [ebp - 0x534]
call fcn.0043232c
lea ecx, [ebp - 0x534]
call fcn.004316d5
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x431f4e
push ebx
call fcn.0043860f
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x458]
call fcn.00401db2
lea ecx, [ebp - 0x534]
call fcn.004321b2
mov ebx, eax
xor eax, eax
cmp word [ebx], ax
je 0x431f76
push ebx
call fcn.0043860f
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x488]
call fcn.00401db2
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x448]
lea ecx, [ebp - 0x458]
cmovae ecx, dword [ebp - 0x458]
push 0x4391c3
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.00403375
add esp, 0x14
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
cmp word [eax], 0x3b
jne 0x432019
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.00405a24
add esp, 0x10
jmp 0x43212c
cmp word [ebp - 0x28], 0
jne 0x432024
xor eax, eax
jmp 0x43202e
lea eax, [ebp - 0x28]
push eax
call fcn.0043860f
pop ecx
push eax
push 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x488]
call fcn.0040baaf
test eax, eax
jne 0x4320dc
cmp dword [ebp - 0x478], 0xb
jbe 0x4320dc
mov ebx, dword [ebp - 0x540]
test ebx, ebx
je 0x4320dc
cmp dword [ebp - 0x474], 8
lea esi, [ebp - 0x488]
cmovae esi, dword [ebp - 0x488]
add esi, 0x16
cmp word [esi], ax
je 0x432082
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4b8]
call fcn.00401db2
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.00409864
mov esi, dword [ebp - 0x538]
test eax, eax
je 0x4320dc
xor eax, eax
cmp word [esi], ax
je 0x4320cf
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x488]
call fcn.00401db2
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00403424
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x4d0]
mov byte [ebp - 4], 8
call fcn.00403424
mov ecx, dword [ebp - 0x544]
lea eax, [ebp - 0x4e8]
push eax
lea eax, [ebp - 0x560]
push eax
mov byte [ebp - 4], 9
call fcn.0040c27c
lea ecx, [ebp - 0x4e8]
call fcn.0040393c
lea ecx, [ebp - 0x534]
call fcn.00431034
lea ecx, [ebp - 0x558]
inc edi
call fcn.00431332
cmp edi, eax
jb 0x431efe
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x470]
call fcn.00401ba5
lea ecx, [esi - 0x10]
call fcn.00409a06
push ebx
push edi
lea ecx, [ebp - 0x4b8]
call fcn.00401ba5
push ebx
push edi
lea ecx, [ebp - 0x488]
call fcn.00401ba5
push ebx
push edi
lea ecx, [ebp - 0x458]
call fcn.00401ba5
push ebx
push edi
lea ecx, [ebp - 0x4a0]
call fcn.00401ba5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x558]
call fcn.00430fbe
mov eax, edi
call fcn.004386a6
ret 8