Function at 0x4191b0
Capabilities:
Check if file exists
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x104c
call fcn.00432ed0
mov eax, dword [0x46c3ac]
mov dword [esp + 0x1048], eax
xor eax, eax
push ebx
push esi
push edi
xor esi, esi
mov word [esp + 0x420], si
mov ecx, 0x81
lea edi, [esp + 0x422]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0xa38], si
mov ecx, 0x81
lea edi, [esp + 0xa3a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0xc40], si
mov ecx, 0x81
lea edi, [esp + 0xc42]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x218], si
mov ecx, 0x81
lea edi, [esp + 0x21a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x628], si
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x62a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [ebp + 8]
push str.ItemInstallPath
mov ecx, edi
call fcn.0041e570
push eax
lea eax, [esp + 0x424]
push eax
call fcn.004323fb
lea ecx, [esp + 0x428]
push ecx
lea edx, [esp + 0xa44]
push edx
call fcn.004323fb
lea eax, [esp + 0x430]
push eax
lea ecx, [esp + 0xc54]
push ecx
call fcn.004323fb
mov eax, dword [edi + 8]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
add esp, 0x18
cmp ebx, ecx
je 0x4193a5
mov edi, edi
mov edi, dword [ebx]
cmp dword [edi + 0x410], esi
je 0x4192d4
lea edx, [esp + 0xa38]
push edx
lea eax, [esp + 0x21c]
push eax
call fcn.004323fb
add esp, 8
jmp 0x419318
mov ecx, dword [0x46d488]
call fcn.0040c720
mov esi, eax
mov eax, dword [esi + 0x278]
mov ecx, dword [eax - 4]
add esi, 0x278
sub eax, 0x10
cmp ecx, 1
jle 0x419303
mov ecx, dword [eax + 4]
push ecx
mov ecx, esi
call fcn.004032c0
mov edx, dword [esi]
push edx
lea eax, [esp + 0x21c]
push eax
call fcn.004323fb
add esp, 8
xor esi, esi
lea ecx, [esp + 0xc40]
push ecx
lea edx, [esp + 0x62c]
push edx
call fcn.004323fb
lea eax, [esp + 0x220]
push edi
push eax
call fcn.004323d1
lea ecx, [edi + 0x208]
push ecx
lea edx, [esp + 0x63c]
push edx
call fcn.004323d1
add esp, 0x18
lea eax, [esp + 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
lea ecx, [esp + 0x62c]
push ecx
lea edx, [esp + 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x419391
cmp dword [edi + 0x414], esi
je 0x419391
lea eax, [esp + 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 8]
add ebx, 4
cmp ebx, eax
jne 0x4192b0
xor eax, eax
mov word [esp + 0x10], si
mov ecx, 0x81
lea edi, [esp + 0x12]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x830], si
mov ecx, 0x81
lea edi, [esp + 0x832]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0xe48], si
mov esi, dword [ebp + 8]
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0xe4a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x830]
push eax
push str.ItemSoft
mov ecx, esi
call fcn.0041e490
lea ecx, [esp + 0x830]
push str.wnwg
push ecx
call fcn.00432272
add esp, 8
test eax, eax
jne 0x4194ce
lea edx, [esp + 0x830]
push edx
lea eax, [esp + 0x424]
push eax
lea ecx, [esp + 0x18]
push str._s_sconfig_
push ecx
call fcn.004322a4
add esp, 0x10
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x419469
mov ecx, dword [0x46d488]
lea eax, [esp + 0x10]
push eax
call fcn.0040c710
mov ecx, eax
call fcn.0040b9a0
lea ecx, [esp + 0x10]
push 0x45a338
push ecx
call fcn.004323d1
add esp, 8
lea edx, [esp + 0xe48]
push edx
push 0x456a2c
mov ecx, esi
call fcn.0041e490
lea eax, [esp + 0xe48]
push 0x45a324
push eax
call fcn.0043298d
add esp, 8
test eax, eax
je 0x4194b4
lea ecx, [esp + 0x10]
push ecx
push 0x45a320
jmp 0x4194be
lea edx, [esp + 0x10]
push edx
push 0x45a31c
push str.ImeInterface
push str.option
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [esp + 0x1054]
call fcn.00431d98
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4