Function at 0x40b2aa
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42a45f
mov eax, dword fs:[0]
push eax
mov eax, 0x1a84
call fcn.0040e690
mov eax, dword [0x43c0c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
xor edi, edi
mov esi, dword [ebp + 8]
push 0x208
mov dword [ebp - 0x1a84], eax
lea eax, [ebp - 0x628]
push edi
push eax
mov dword [ebp - 0x1a8c], esi
call fcn.00412a00
push 0x208
lea eax, [ebp - 0xa38]
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x1050]
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x1668]
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x420]
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x830]
push edi
push eax
call fcn.00412a00
add esp, 0x48
lea eax, [ebp - 0xc40]
push 0x208
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x1258]
push edi
push eax
call fcn.00412a00
push 0x208
lea eax, [ebp - 0x1870]
push edi
push eax
call fcn.00412a00
push dword [ebp - 0x1a84]
lea eax, [ebp - 0xc40]
push eax
call fcn.004182a0
lea eax, [ebp - 0x628]
push esi
push eax
call fcn.004182a0
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.0041822f
lea eax, [ebp - 0x628]
push str.32.ime
push eax
call fcn.0041822f
add esp, 0x44
lea eax, [ebp - 0xa38]
push esi
push eax
call fcn.004182a0
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0xa38]
push eax
call fcn.0041822f
push str.64.ime
lea eax, [ebp - 0xa38]
push eax
call fcn.0041822f
push dword [ebp - 0x1a84]
lea eax, [ebp - 0x1050]
push eax
call fcn.004182a0
mov esi, str..ime
lea eax, [ebp - 0x1050]
push esi
push eax
call fcn.0041822f
add esp, 0x28
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40b464
cmp dword [ebx + 0x28], edi
je 0x40b45d
push edi
push 0x42dc3c
push str.gb0Ri
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40bb57
push 0x104
lea eax, [ebp - 0x1668]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x1668]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.0041822f
lea eax, [ebp - 0x420]
push 0x42b54c
push eax
call fcn.0041822f
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x1258]
push eax
call fcn.004182a0
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.0041822f
lea eax, [ebp - 0x420]
push esi
push eax
call fcn.0041822f
lea eax, [ebp - 0x628]
push eax
push str.RegisterIME_ImeFile:_s
call fcn.0040c1b5
add esp, 0x30
lea eax, [ebp - 0x1460]
mov ecx, ebx
push eax
push 0x42dc9c
lea eax, [ebp - 0x628]
push eax
call fcn.0040aa7c
test eax, eax
je 0x40b45d
lea eax, [ebp - 0x1460]
push eax
push str.RegisterIME_ImeDescrible:Name:_s
call fcn.0040c1b5
pop ecx
pop ecx
mov ecx, ebx
call fcn.0040f85c
mov ecx, ebx
test eax, eax
je 0x40b831
lea eax, [ebp - 0x1a88]
push eax
call fcn.0040fa49
lea eax, [ebp - 0x420]
mov ecx, ebx
push eax
lea eax, [ebp - 0xa38]
push eax
call fcn.00409e4d
test eax, eax
jne 0x40b62b
push 0x64
push 0xa
call fcn.00408a5c
pop ecx
pop ecx
mov dword [ebp - 0x1a80], eax
mov esi, edi
jmp 0x40b60e
push esi
push str.RegisterIME_nCopyTimes1:_d
call fcn.0040c1b5
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
mov eax, dword [ebp - 0x1a80]
add eax, esi
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str._s.bak_d
push eax
call fcn.0040568b
add esp, 0x24
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40b5c7
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.00419318
pop ecx
pop ecx
push 5
push edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp esi, 0xa
jl 0x40b60d
push 5
push 0x42dc3c
push 0x42dd34
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x40b45d
inc esi
push edi
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0xa38]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40b568
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x40b683
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x1258]
push eax
lea eax, [ebp - 0x218]
push str._sregsvr32.exe__s__s
push eax
call fcn.0040568b
lea eax, [ebp - 0x218]
push eax
push str.RegisterIME_regsvr_Cmd1:_s
call fcn.0040c1b5
lea eax, [ebp - 0x218]
push eax
call fcn.00408997
add esp, 0x28
push 0x104
lea eax, [ebp - 0x830]
mov ecx, ebx
push eax
call fcn.0040f7ca
lea eax, [ebp - 0x830]
push 0x42b54c
push eax
call fcn.0041822f
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x1870]
push eax
call fcn.004182a0
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.0041822f
lea eax, [ebp - 0x830]
push str..ime
push eax
call fcn.0041822f
add esp, 0x20
lea eax, [ebp - 0x830]
mov ecx, ebx
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.00409e4d
test eax, eax
jne 0x40b7f8
push 0x64
push 0xa
call fcn.00408a5c
pop ecx
pop ecx
mov dword [ebp - 0x1a90], eax
mov dword [ebp - 0x1a80], edi
jmp 0x40b7db
push dword [ebp - 0x1a80]
push str.RegisterIME_nCopyTimes2:_d
call fcn.0040c1b5
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
mov eax, dword [ebp - 0x1a80]
add eax, dword [ebp - 0x1a90]
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x218]
push str._s.bak_d
push eax
call fcn.0040568b
add esp, 0x24
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40b782
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00419318
pop ecx
pop ecx
push 5
push edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x1a80]
cmp eax, 0xa
jl 0x40b7d4
push 5
push 0x42dc3c
push 0x42ddd4
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x40b45d
mov eax, dword [ebp - 0x1a80]
inc eax
mov dword [ebp - 0x1a80], eax
push edi
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40b71a
push dword [ebp - 0x1a88]
mov ecx, ebx
call fcn.0040fa67
test esi, esi
je 0x40b96e
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x1870]
jmp 0x40b94d
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.00409e4d
test eax, eax
jne 0x40b927
push 0x64
push 0xa
call fcn.00408a5c
pop ecx
pop ecx
mov dword [ebp - 0x1a88], eax
mov esi, edi
jmp 0x40b90a
push esi
push str.RegisterIME_nCopyTimes3:_d
call fcn.0040c1b5
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
mov eax, dword [ebp - 0x1a88]
add eax, esi
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str._s.bak_d
push eax
call fcn.0040568b
add esp, 0x24
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40b8c3
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.00419318
pop ecx
pop ecx
push 5
push edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp esi, 0xa
jl 0x40b909
push 5
push 0x42dc3c
push 0x42dd34
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x40b45d
inc esi
push edi
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40b864
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x40b96e
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00412a00
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x1258]
push eax
lea eax, [ebp - 0x218]
push str._sregsvr32.exe__s__s
push eax
call fcn.0040568b
lea eax, [ebp - 0x218]
push eax
call fcn.00408997
add esp, 0x20
push esi
push dword [ebp - 0x1a84]
mov ecx, ebx
push dword [ebp - 0x1a8c]
call fcn.0040a293
test esi, esi
je 0x40b9b0
lea eax, [ebp - 0x218]
push str.0804:8F233D5B_E44C_47DE_B1CC_2C92FEDE6CE17556EAD1_4C0B_4090_9994_A55D790D0752
push eax
call fcn.004182a0
pop ecx
pop ecx
xor edi, edi
lea eax, [ebp - 0x218]
inc edi
mov ecx, ebx
push edi
push eax
call fcn.0040a763
jmp 0x40bb55
lea eax, [ebp - 0x1050]
mov ecx, ebx
push eax
call fcn.0040ac51
lea ecx, [ebp - 0x1a79]
call fcn.00408f3c
lea eax, [ebp - 0x1050]
mov dword [ebp - 4], edi
push eax
lea ecx, [ebp - 0x1a79]
call fcn.0040c7a9
test eax, eax
jne 0x40ba04
lea eax, [ebp - 0x1460]
push eax
lea eax, [ebp - 0x420]
push eax
call sub.IMM32.dll_ImmInstallIMEW
test eax, eax
je 0x40bb4a
mov esi, 0x208
jmp 0x40ba43
mov esi, 0x208
lea eax, [ebp - 0x218]
push esi
push edi
push eax
call fcn.00412a00
push 0x42de38
lea eax, [ebp - 0x218]
push 0x42de48
push eax
call fcn.0040568b
add esp, 0x18
lea eax, [ebp - 0x218]
lea ecx, [ebp - 0x1a79]
push eax
push eax
call fcn.0040c92d
push esi
lea eax, [ebp - 0x1a78]
push edi
push eax
call fcn.00412a00
push esi
lea eax, [ebp - 0xe48]
push edi
push eax
call fcn.00412a00
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0xe48]
push eax
call fcn.004182a0
lea eax, [ebp - 0xe48]
push str..ime
push eax
call fcn.0041822f
add esp, 0x28
lea eax, [ebp - 0x1a78]
mov ecx, ebx
push eax
lea eax, [ebp - 0xe48]
push eax
call fcn.0040a922
test eax, eax
jne 0x40baaf
push str.RegisterIME_GetIMERegInfo_Failed
call fcn.0040c1b5
pop ecx
jmp 0x40bb4a
lea eax, [ebp - 0xe48]
push eax
push str.RegisterIME_DeleteRepeatVectorTImeLayout__s
call fcn.0040c1b5
pop ecx
pop ecx
lea eax, [ebp - 0xe48]
mov ecx, ebx
push eax
call fcn.0040a5ae
push 0xf0
call fcn.0040e0a1
push 0xf0
mov esi, eax
push edi
push esi
mov dword [ebp - 0x1a84], esi
call fcn.00412a00
lea eax, [ebp - 0x1460]
push eax
lea ecx, [esi + 0x8c]
push ecx
call fcn.004182a0
lea eax, [ebp - 0x1a78]
push eax
push esi
call fcn.004182a0
mov edx, dword [ebx + 0x24]
mov ecx, edi
xor edi, edi
add esp, 0x20
inc edi
mov eax, dword [edx]
jmp 0x40bb25
cmp ecx, edi
je 0x40bb75
inc ecx
add eax, 4
cmp eax, dword [edx + 4]
jne 0x40bb1d
lea eax, [ebp - 0x1a84]
mov ecx, edx
push eax
call fcn.0040c753
push str.RegisterIME_SaveVectorTImeLayout
call fcn.0040c1b5
pop ecx
mov ecx, ebx
call fcn.0040bb8e
lea ecx, [ebp - 0x1a79]
call fcn.0040c7a8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040e0e7
mov esp, ebp
pop ebp
ret 0xc
lea ecx, [ebp - 0x1a84]
push ecx
push edi
push eax
lea eax, [ebp - 0x1a8c]
mov ecx, edx
push eax
call fcn.0040c489
jmp 0x40bb38