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

Disassembly:
push 0x504
mov eax, 0x44c108
call fcn.004386f7
mov esi, ecx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x504]
call fcn.00430f14
push 7
xor edx, edx
pop ecx
xor eax, eax
mov dword [ebp - 4], edx
mov ebx, pe_nt_image_headers32
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.00405480
xor eax, eax
cmp word [edi], ax
je 0x43178b
push edi
call fcn.0043860f
pop ecx
push eax
push edi
lea ecx, [ebp - 0x458]
call fcn.00401db2
mov esi, 0x20a
push esi
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.00438dc0
push esi
xor esi, esi
lea eax, [ebp - 0x21c]
push esi
push eax
call fcn.00438dc0
add esp, 0x18
lea eax, [ebp - 0x428]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x43185d
lea eax, [ebp - 0x21c]
push eax
push esi
push 0x457c68
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x43185d
push esi
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
xor edi, edi
test eax, eax
je 0x43185f
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 0x43183b
mov eax, edi
jmp 0x431848
lea eax, [ebp - 0x21c]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.00401db2
jmp 0x43185f
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.00405a24
push 0x345
push str...CommonString.cpp
push 0x200
call fcn.0042ae50
add esp, 0x1c
mov esi, eax
jmp 0x431926
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 0x431919
push esi
call fcn.0042afb6
add ebx, 0x100
mov dword [esp], 0x350
lea eax, [ebx + ebx]
push str...CommonString.cpp
push eax
call fcn.0042ae50
add esp, 0xc
jmp 0x43189c
test eax, eax
jne 0x43192e
push esi
call fcn.0042afb6
pop ecx
mov esi, edi
test esi, esi
jne 0x4318a3
cmp word [ebp - 0x21c], 0
je 0x431972
lea eax, [ebp - 0x21c]
push eax
push str.Delete_the_temp_file.___1_s___n
push str.CInfStringTable::GetTable
push 5
call fcn.00405a24
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 0x43198b
push esi
call fcn.004322ad
push esi
call fcn.0042afb6
pop ecx
jmp 0x431995
push 0x457a40
call fcn.004322ad
lea ecx, [ebp - 0x504]
call fcn.00431332
test eax, eax
je 0x431b10
mov ebx, dword [ebp - 0x4f0]
lea ecx, [ebp - 0x4ec]
call fcn.00430f7c
push edi
lea ecx, [ebp - 0x504]
mov byte [ebp - 4], 4
call fcn.00431655
inc eax
push eax
push edi
lea ecx, [ebp - 0x504]
call fcn.004315c5
push eax
lea ecx, [ebp - 0x4ec]
call fcn.0043232c
lea ecx, [ebp - 0x4ec]
call fcn.004316d5
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x4319fe
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x440]
call fcn.00401db2
mov eax, dword [ebp - 0x430]
push 8
pop esi
cmp dword [ebp - 0x42c], esi
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
push 0x4391c3
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.00403375
add esp, 0x14
cmp dword [ebp - 0x42c], esi
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
cmp word [eax], 0x3b
jne 0x431a9e
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.00405a24
add esp, 0x10
jmp 0x431af1
lea ecx, [ebp - 0x4ec]
call fcn.004321b2
mov esi, eax
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x4a0]
call fcn.00403424
push esi
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 5
call fcn.00403477
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x510]
push eax
mov ecx, ebx
mov byte [ebp - 4], 6
call fcn.0040c27c
lea ecx, [ebp - 0x4a0]
call fcn.0040393c
lea ecx, [ebp - 0x4ec]
call fcn.00431034
lea ecx, [ebp - 0x504]
inc edi
call fcn.00431332
cmp edi, eax
jb 0x4319ae
xor ebx, ebx
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x458]
call fcn.00401ba5
push ebx
push esi
lea ecx, [ebp - 0x440]
call fcn.00401ba5
push ebx
push esi
lea ecx, [ebp - 0x470]
call fcn.00401ba5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x504]
call fcn.00430fbe
mov eax, esi
call fcn.004386a6
ret 4