Function at 0x404cc0
Capabilities:
Query environment variable
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbcc
mov eax, dword [ebp + 0x10]
mov byte [ebp - 0x19], al
mov dword [ebp - 0xb44], sym.___gxx_personality_sj0
mov dword [ebp - 0xb40], 0x413c72
lea eax, [ebp - 0xb3c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x405748
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0xb5c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
mov dword [esp], str.getting_launch_parameters
mov dword [ebp - 0xb58], 0xffffffff
call sym.du_startupTrace_char_const__..._
lea edx, [ebp - 0x38]
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], edx
call sym.getLaunchParametersViaSubprocess_std::string_const__char_const_
sub esp, 4
mov dword [esp], str.got_launch_parameters
mov dword [ebp - 0xb58], 0xf
call sym.du_startupTrace_char_const__..._
mov dword [esp], 0x200438
call sym.operator_new_unsigned_int_
mov dword [ebp - 0xb60], eax
mov edx, dword [ebp - 0xb60]
mov eax, 0x200438
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edx
call sym._memset
mov eax, dword [ebp - 0xb60]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xb64], 0
cmp dword [ebp - 0x3c], 0
jne 0x404e1b
mov dword [esp + 8], 0x24d
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xe
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0xb64], 1
lea eax, [ebp - 0x58]
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 0x404e1b
cmp dword [ebp - 0xb64], 0
je 0x404e39
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xf
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [esp + 8], 0x200438
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xf
call sym._memset
mov dword [esp + 4], str._modeexecute
mov eax, dword [ebp - 0x3c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
mov dword [esp], str.about_to_parse_args_blocks
call sym.du_startupTrace_char_const__..._
lea edx, [ebp - 0x68]
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
mov dword [esp], edx
call sym.eatHeadStringInBlock_std::string_
sub esp, 4
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xd
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
jmp 0x404eef
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xf
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x68]
mov dword [esp], eax
call fcn.00412d14
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0xb58], 0xc
call sym.eatHeadStringInBlock_std::string_
sub esp, 4
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call method.std::string.size___const
test eax, eax
je 0x404f64
mov dword [esp + 4], 0
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.operator___unsigned_int_
cmp byte [eax], 0x2d
jne 0x404f64
jmp 0x405066
mov dword [ebp - 0xb78], 0
mov dword [esp + 4], str.END_JVM_ARGS
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xa
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x404f94
jmp 0x40502e
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xa
call method.std::string.c_str___const
mov dword [ebp - 0xb74], eax
mov dword [esp + 8], 0x257
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0x78]
mov dword [esp], eax
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0xb78], 1
lea eax, [ebp - 0x78]
mov edx, dword [ebp - 0xb74]
mov dword [esp + 8], edx
mov dword [esp + 4], str.expected_END_JVM_ARGS__not__s
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x40502e
cmp dword [ebp - 0xb78], 0
je 0x40504c
lea eax, [ebp - 0x78]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call sym.du_private_AssertHelper::du_private_AssertHelper__
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x405374
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov dword [esp], str.jvm_arg:__s
call sym.du_startupTrace_char_const__..._
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call method.std::string.size___const
cmp eax, dword [ebp - 0x7c]
jle 0x4050f0
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.operator___unsigned_int_
cmp byte [eax], 0x3d
je 0x4050f0
lea eax, [ebp - 0x7c]
inc dword [eax]
jmp 0x4050b8
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call method.std::string.size___const
cmp eax, dword [ebp - 0x7c]
jle 0x40535a
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.operator___unsigned_int_
cmp byte [eax], 0x3d
jne 0x40535a
lea eax, [ebp - 0x98]
mov edx, dword [ebp - 0x7c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
lea edx, [ebp - 0x58]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::string.substr_unsigned_int__unsigned_int__const
sub esp, 4
lea eax, [ebp - 0xa8]
mov dword [esp + 0xc], 0xffffffff
mov edx, dword [ebp - 0x7c]
inc edx
mov dword [esp + 8], edx
lea edx, [ebp - 0x58]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0xb58], 9
call method.std::string.substr_unsigned_int__unsigned_int__const
sub esp, 4
lea eax, [ebp - 0xc8]
mov dword [esp], eax
call fcn.004101b4
lea eax, [ebp - 0xc8]
mov dword [esp + 8], eax
mov dword [esp + 4], str._Dcom.datacard.controller.path.prefix
lea eax, [ebp - 0xb8]
mov dword [esp], eax
mov dword [ebp - 0xb58], 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 - 0xb8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0xb58], 6
call method.bool_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::char_traits_char___std::allocator_char____const_
mov byte [ebp - 0xb7d], al
jmp 0x405216
lea eax, [ebp - 0xb8]
mov dword [esp], eax
mov dword [ebp - 0xb58], 7
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x405258
lea eax, [ebp - 0xc8]
mov dword [esp], eax
call sym.std::allocator_char_::allocator__
cmp byte [ebp - 0xb7d], 0
je 0x4052c2
lea eax, [ebp - 0xa8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0xb58], 8
call fcn.00413374
jmp 0x4052c2
lea eax, [ebp - 0xa8]
mov dword [esp], eax
mov dword [ebp - 0xb58], 9
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40530e
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xb
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40535a
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x404f0f
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov dword [esp], str.path_prefix_s
call sym.du_startupTrace_char_const__..._
lea eax, [ebp - 0x68]
mov dword [esp], eax
call method.std::string.size___const
test eax, eax
je 0x4055e4
mov dword [ebp - 0x7c], 0xa28
mov dword [esp + 8], 0xa28
lea eax, [ebp - 0xaf8]
mov dword [esp + 4], eax
mov dword [esp], str.Path
call sub.KERNEL32.dll_GetEnvironmentVariableA
sub esp, 0xc
mov dword [ebp - 0xafc], eax
mov dword [ebp - 0xb98], 0
cmp dword [ebp - 0xafc], 0
je 0x4053fe
cmp dword [ebp - 0xafc], 0xa27
jg 0x4053fe
jmp 0x405486
mov dword [esp + 8], 0x26f
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0xb18]
mov dword [esp], eax
mov dword [ebp - 0xb58], 5
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0xb98], 1
lea eax, [ebp - 0xb18]
mov dword [esp + 4], str.failed_to_get_path_environment_variable
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x405486
cmp dword [ebp - 0xb98], 0
je 0x4054a7
lea eax, [ebp - 0xb18]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call sym.du_private_AssertHelper::du_private_AssertHelper__
lea eax, [ebp - 0x58]
mov dword [ebp - 0xba0], eax
lea edx, [ebp - 0xc8]
mov dword [esp + 8], 0x415514
lea eax, [ebp - 0x68]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0xb58], 0xc
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 edx, [ebp - 0xc8]
lea eax, [ebp - 0xaf8]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0xba0]
mov dword [esp], edx
mov dword [ebp - 0xb58], 4
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
jmp 0x405540
lea eax, [ebp - 0xc8]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 3
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov dword [esp], str.Path
call sub.KERNEL32.dll_SetEnvironmentVariableA
sub esp, 8
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov dword [esp], str.new_path_s
call sym.du_startupTrace_char_const__..._
jmp 0x4055cf
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0xb58], 0xc
call sym.eatHeadStringInBlock_std::string_
sub esp, 4
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 2
call method.std::string.size___const
test eax, eax
jne 0x405636
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x4056c8
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 2
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x100438
mov dword [esp], eax
call sym.appendArgBlock_char__char_const_
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 4], eax
mov dword [esp], str.main_arg:__s
call sym.du_startupTrace_char_const__..._
jmp 0x4056ae
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x4055e4
mov dword [esp], str.parsed_arg_blocks
mov dword [ebp - 0xb58], 0xc
call sym.du_startupTrace_char_const__..._
mov dword [ebp - 0xbb0], 0
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0xb58], 1
call method.std::string.size___const
test eax, eax
je 0x405857
mov dword [esp + 8], 0x280
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_jlaunch_JLaunch.cpp
lea eax, [ebp - 0xb28]
mov dword [esp], eax
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0xbb0], 1
lea eax, [ebp - 0xb28]
mov dword [esp + 4], str.problem_parsing_launch_parameter_block
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x405857
cmp dword [ebp - 0xbb0], 0
je 0x405878
lea eax, [ebp - 0xb28]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [esp + 4], str.com_datacard_ctrlr_core_launcher_JLaunch
mov eax, dword [ebp - 0x3c]
add eax, 0x10e
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xc
call sym.strcpy_path_char__char_const_
mov dword [esp + 4], str.launchHelperEntryPoint
mov eax, dword [ebp - 0x3c]
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 - 0x3c]
add eax, 0x32a
mov dword [esp], eax
call sym.strcpy_path_char__char_const_
lea eax, [ebp - 0x58]
movzx edx, byte [ebp - 0x19]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x3c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.runJavaCode_LaunchParameters_const__bool_
sub esp, 4
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x405923
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xf
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40597f
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0xb58], 0xffffffff
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0xb5c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret