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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x834
mov eax, dword [0x4c4754]
xor eax, ebp
mov dword [ebp - 0x28], eax
mov dword [0x4c6ce8], 0x4c554e
cmp dword [ebp + 0xc], 0
je 0x40b75c
push 1
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040b560
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x400
push 0x4c6ce8
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b6e4
cmp dword [ebp - 0x14], 0x400
jle 0x40b705
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp + 0xc]
push edx
push 0x4900c4
call fcn.0040ffb0
add esp, 0x10
xor eax, eax
jmp 0x40ba36
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040b1e0
add esp, 4
push eax
push 0x4c6ce8
call fcn.0040b1e0
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x40b75c
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
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.
lea eax, [ebp - 0x828]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0
push 0
lea ecx, [ebp - 0x828]
push ecx
push 1
call fcn.0040b420
add esp, 0x10
push 0x400
push 0x4c64e8
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b782
cmp dword [ebp - 0x14], 0x400
jle 0x40b7a3
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp + 8]
push eax
push str.MoveFileOnReboot9x_____failed_to_get_short_name_for
call fcn.0040ffb0
add esp, 0x10
xor eax, eax
jmp 0x40ba36
push 0x4c64e8
push 0x4c6ce8
push str._s_s_r_n
push 0x4c5ce8
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x24], eax
push 1
push 0
push 0x4c5ce8
push str.MoveFileOnReboot9x_____ini_line
call fcn.0040ffb0
add esp, 0x10
push 0x3f0
push 0x4c64e8
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.wininit.ini
push 0x4c64e8
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0
push 0x8000080
push 4
push 0
push 0
push 0xc0000000
push 0x4c64e8
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x40b841
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c64e8
push str.MoveFileOnReboot9x_____failed_to_open
call fcn.0040ffb0
add esp, 0x10
xor eax, eax
jmp 0x40ba36
push 0
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xc], eax
push 0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
lea ecx, [eax + edx + 0xa]
push ecx
push 0
push 4
push 0
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x40b8a2
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c64e8
push str.MoveFileOnReboot9x_____failed_to_create_mapping
call fcn.0040ffb0
add esp, 0x10
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x40ba36
push 0
push 0
push 0
push 2
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x20], 0
jne 0x40b8f3
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c64e8
push str.MoveFileOnReboot9x_____failed_to_map
call fcn.0040ffb0
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x40ba36
mov dword [ebp - 0x18], str._Rename__r_n
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.0040f5c0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40b93b
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
lea eax, [edx + ecx*2]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, dword [ebp - 0xc]
add ecx, 0xa
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 8], edx
jmp 0x40b9d3
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 0x82c], eax
push 0x490414
mov ecx, dword [ebp - 0x82c]
push ecx
call fcn.0046783f
add esp, 8
mov dword [ebp - 0x830], eax
cmp dword [ebp - 0x830], 0
je 0x40b9cd
mov edx, dword [ebp - 0x830]
add edx, 2
mov dword [ebp - 0x830], edx
mov eax, dword [ebp - 0x830]
mov dword [ebp - 0x834], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
lea eax, [edx + ecx*2]
cmp dword [ebp - 0x834], eax
jae 0x40b9bd
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x834]
mov eax, dword [ebp - 0x834]
mov ax, word [eax]
mov word [edx + ecx*2], ax
mov ecx, dword [ebp - 0x834]
add ecx, 2
mov dword [ebp - 0x834], ecx
jmp 0x40b985
mov edx, dword [ebp - 0x830]
sub edx, dword [ebp - 0x1c]
sar edx, 1
mov dword [ebp - 8], edx
jmp 0x40b9d3
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
push ecx
push 0x4c5ce8
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + edx*2]
push ecx
call fcn.0040b5a0
add esp, 0xc
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.00466b32
mov esp, ebp
pop ebp
ret