Function at 0x41cdc0
Capabilities:
Get common file path
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x404
push ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test esi, esi
mov dword [0x487c14], 0x4c554e
je 0x41ce60
push 1
push 0
push esi
call fcn.0041cd00
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x400
push 0x487c14
push esi
call edi
test eax, eax
je 0x41cf1c
cmp eax, 0x400
jg 0x41cf1c
push esi
call fcn.0041cb80
add esp, 4
push eax
push 0x487c14
call fcn.0041cb80
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x41ce60
lea eax, [ebp - 0x404]
push str.RoboForm_file__s_is_locked_and_will_be_copied_after_reboot_as__s._nFor_correct_RoboForm_operation_you_can_rename_the_file_back_to_the_long_name_nor_re_install_RoboForm__when_this_file_became_unlocked._nPlease__inform_RoboForm_Support_about_this_problem.
push eax
call ebx
push 0
lea ecx, [ebp - 0x404]
push 0
push ecx
call fcn.0041cc40
add esp, 0x14
mov esi, dword [ebp + 8]
push 0x400
push 0x488414
push esi
call edi
test eax, eax
je 0x41d04c
cmp eax, 0x400
jg 0x41d04c
push 0x488414
push 0x487c14
push str._s_s_r_n
push 0x488014
call ebx
push 1
push 0
mov edi, eax
push 0x488014
push str.MoveFileOnReboot9x_____ini_line
mov dword [ebp + 0xc], edi
call fcn.00419330
add esp, 0x20
push 0x3f0
push 0x488414
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.wininit.ini
push 0x488414
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
push 0x8000080
push 4
push 0
push 0
push 0xc0000000
push 0x488414
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41cf3c
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x488414
push str.MoveFileOnReboot9x_____failed_to_open
call fcn.00419330
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x47fae8
call fcn.00419330
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
push 0
lea edx, [ebx + edi + 0xa]
push edx
push 0
push 4
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
mov dword [ebp - 4], eax
jne 0x41cf8d
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x488414
push str.MoveFileOnReboot9x_____failed_to_create_mapping
call fcn.00419330
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
push str._Rename__r_n
push edi
call fcn.00418da0
add esp, 8
test eax, eax
jne 0x41d012
lea eax, [edi + ebx]
push str._Rename__r_n
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
add ebx, 0xa
mov eax, ebx
mov ecx, dword [ebp + 0xc]
add eax, edi
push ecx
push 0x488014
push eax
call fcn.0041cd30
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov edx, dword [ebp - 4]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
mov eax, dword [ebp + 0xc]
push 0
add ebx, eax
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call edi
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
add eax, 0xa
push 0x47fd18
push eax
call fcn.00424e85
add esp, 8
test eax, eax
je 0x41cfc2
inc eax
lea ecx, [edi + ebx]
cmp eax, ecx
mov dword [ebp + 8], eax
jae 0x41d045
mov edx, dword [ebp + 0xc]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
lea ecx, [edi + ebx]
cmp eax, ecx
jb 0x41d032
mov eax, dword [ebp + 8]
sub eax, edi
jmp 0x41cfc4
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.MoveFileOnReboot9x_____failed_to_get_short_name_for
call fcn.00419330
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret