Function at 0x403eda
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x25c
mov dword [ebp - 0x1d4], sym.___gxx_personality_sj0
mov dword [ebp - 0x1d0], 0x413c3a
lea eax, [ebp - 0x1cc]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x404855
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x1ec]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
mov dword [esp], 0x200438
mov dword [ebp - 0x1e8], 0xffffffff
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x1f0], eax
mov edx, dword [ebp - 0x1f0]
mov eax, 0x200438
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edx
call sym._memset
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1f4], 0
cmp dword [ebp - 0x1c], 0
jne 0x404008
mov dword [esp + 8], 0x1dd
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xb
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x1f4], 1
lea eax, [ebp - 0x38]
mov dword [esp + 4], str.failed_to_allocate_pre_launch_parameter_block
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x404008
cmp dword [ebp - 0x1f4], 0
je 0x404026
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [esp + 8], 0x200438
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xffffffff
call sym._memset
mov dword [esp + 4], str._modelookup
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp + 4], str._exe
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.Env.Env__
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xa
call sym.getEnvironmentInfo_Env_
lea eax, [ebp - 0x58]
add eax, 4
mov dword [esp], eax
call method.std::string.size___const
test eax, eax
je 0x404106
mov dword [esp + 4], str._prefix
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
add eax, 4
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp + 4], str._install
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xa
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
add eax, 8
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp + 4], str._jvm
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
add eax, 0x10
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [ebp - 0x16c], 0
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x168]
mov dword [esp], eax
call sub.KERNEL32.dll_GetSystemWindowsDirectoryA
sub esp, 8
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
je 0x4041f4
cmp dword [ebp - 0x16c], 0x103
ja 0x4041f4
mov dword [esp + 4], str._windows_dir
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x168]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x168]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xa
call sub.KERNEL32.dll_GetSystemDirectoryA
sub esp, 8
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
je 0x404264
cmp dword [ebp - 0x16c], 0x103
ja 0x404264
mov dword [esp + 4], str._windows_system_dir
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x168]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x168]
mov dword [esp + 8], str._binclientjvm.dll
lea edx, [ebp - 0x58]
add edx, 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xa
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
sub esp, 4
lea eax, [ebp - 0x168]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 9
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
mov dword [esp + 4], str._db2
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x158]
mov dword [esp], eax
call sym.getDB2Dir__
sub esp, 4
lea eax, [ebp - 0x158]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 8
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
jmp 0x404344
lea eax, [ebp - 0x158]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 9
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
mov dword [esp + 4], str._raw_args_from_command_line
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [ebp - 0x16c], 0
mov eax, dword [ebp - 0x16c]
lea edx, [eax*4]
mov eax, dword [ebp + 0x10]
cmp dword [edx + eax], 0
je 0x4043cf
mov eax, dword [ebp - 0x16c]
lea edx, [eax*4]
mov eax, dword [ebp + 0x10]
mov eax, dword [edx + eax]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x100438
mov dword [esp], eax
mov dword [ebp - 0x1e8], 9
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x16c]
inc dword [eax]
jmp 0x40437e
lea eax, [ebp - 0x158]
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x138]
mov dword [esp], eax
call fcn.004101b4
lea eax, [ebp - 0x138]
mov dword [esp + 8], eax
mov dword [esp + 4], str._Djava.class.path
lea eax, [ebp - 0x148]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 7
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea eax, [ebp - 0x148]
lea edx, [ebp - 0x58]
add edx, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x204]
mov dword [esp], edx
mov dword [ebp - 0x1e8], 6
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__std::basic_string_char__std::ch
sub esp, 4
jmp 0x404476
lea eax, [ebp - 0x148]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 7
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x4044bb
lea eax, [ebp - 0x138]
mov dword [esp], eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x158]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 5
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp + 4], str.com_datacard_ctrlr_core_launcher_JLaunch
mov eax, dword [ebp - 0x1c]
add eax, 0x10e
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
mov dword [esp + 4], str.launchHelperEntryPoint
mov eax, dword [ebp - 0x1c]
add eax, 0x21c
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
mov dword [esp + 4], str.__Ljava_lang_String___B
mov eax, dword [ebp - 0x1c]
add eax, 0x32a
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
lea edx, [ebp - 0x148]
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov dword [esp], edx
call sym.runJavaCode_LaunchParameters_const__bool_
sub esp, 4
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call method.std::string.c_str___const
mov dword [esp + 4], 0x8001
mov dword [esp], eax
call sym._open
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x214], 0
cmp dword [ebp - 0x16c], 0xffffffff
jne 0x404642
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 3
call method.std::string.c_str___const
mov dword [ebp - 0x210], eax
mov dword [esp + 8], 0x221
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x188]
mov dword [esp], eax
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x214], 1
lea eax, [ebp - 0x188]
mov edx, dword [ebp - 0x210]
mov dword [esp + 8], edx
mov dword [esp + 4], str.failed_to_open_temp_file__s
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x404642
cmp dword [ebp - 0x214], 0
je 0x404663
lea eax, [ebp - 0x188]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call sym.du_private_AssertHelper::du_private_AssertHelper__
lea eax, [ebp - 0x148]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call method.std::string.size___const
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x148]
mov dword [esp], eax
call method.std::string.c_str___const
mov edx, dword [ebp - 0x21c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp], eax
call sym._write
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x228], 0
lea eax, [ebp - 0x148]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 2
call method.std::string.size___const
cmp eax, dword [ebp - 0x18c]
je 0x4047a0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x148]
mov dword [esp], eax
call method.std::string.size___const
mov dword [ebp - 0x224], eax
mov dword [esp + 8], 0x223
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x1a8]
mov dword [esp], eax
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x228], 1
lea edx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x18c]
mov dword [esp + 8], eax
mov dword [esp + 4], str.failed_to_write_parameters_to_temp_file__wrote_d_of__d_to__s
mov dword [esp], edx
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x4047a0
cmp dword [ebp - 0x228], 0
je 0x4047c1
lea eax, [ebp - 0x1a8]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call method.std::string.c_str___const
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x18c]
mov dword [esp + 4], eax
mov dword [esp], str.wrote_startup_parameters__len_d_name_s
call sym.du_startupTrace_char_const__..._
mov dword [ebp - 0x230], 0
mov eax, dword [ebp - 0x16c]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 1
call sym._close
test eax, eax
je 0x40492d
mov dword [esp + 8], 0x225
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x230], 1
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure3__
jmp 0x40492d
cmp dword [ebp - 0x230], 0
je 0x40494e
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 4
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym.operator_delete_void_
jmp 0x40498d
lea eax, [ebp - 0x148]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x4049d9
lea eax, [ebp - 0x158]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 9
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x404a25
lea eax, [ebp - 0x168]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xa
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x404a84
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0x1e8], 0xffffffff
call fcn.0040d4a4
lea eax, [ebp - 0x1ec]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret