Function at 0x401f28
Capabilities:
Get common file path
Write file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x578
mov rbp, rcx
lea rcx, str.Launching
mov rdi, r9
mov esi, r8d
mov r13, rdx
call fcn.0040bed8
lea rdx, str.launchFromLaunchFile
lea rcx, str._____s_____n
call fcn.0040bd0c
xor r12d, r12d
cmp esi, r12d
lea r14d, [r12 + 1]
mov ebx, r12d
jle 0x401fa1
mov r8, qword [rdi]
lea rcx, str.Argument_Dump__d___.120s_n
mov edx, ebx
call fcn.0040bd0c
add ebx, r14d
add rdi, 8
cmp ebx, esi
jl 0x401f85
lea rcx, str._Extractor__Launching__launchclass:__d_..._n
xor edx, edx
call fcn.0040bd0c
mov rdx, qword [0x0045cc90]
lea rcx, str._Extractor___Bundle:__s_n
call fcn.0040bd0c
mov rdx, qword [0x0045cca8]
lea rcx, str._Extractor_______JW:__s_n
call fcn.0040bd0c
mov rdx, qword [0x0045cca0]
lea rcx, str._Extractor______App:__s_n
call fcn.0040bd0c
mov rdx, qword [0x0045cc98]
lea rcx, str._Extractor______JRE:__s_n
call fcn.0040bd0c
mov ebx, 0x1f40
mov rcx, rbx
call fcn.004171e0
mov rcx, rbx
mov edi, r12d
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x50], r12d
call fcn.004171e0
mov r15, rax
mov qword [rsp + 0xa8], rax
mov rax, qword [0x0045cca8]
lea rcx, [rsp + 0x460]
mov rdx, rax
mov byte [rsp + 0x460], r12b
mov qword [rsp + 0x58], rax
call fcn.004174b0
lea rdx, str.JWrapperLaunch
lea rcx, [rsp + 0x460]
call fcn.0040bc6c
lea rdx, [0x0044c8d8]
lea rcx, [rsp + 0x460]
call fcn.00419020
cmp rax, r12
mov r14, rax
mov qword [rsp + 0x98], rax
jne 0x4020a3
lea rdx, [rsp + 0x460]
lea rcx, str.Unable_to_open_launch_file__s_n
call fcn.0040bdd8
mov ecx, 1
call fcn.004187f0
int3
lea rdx, str.LaunchFile_VER
mov r8d, 0x28
mov rcx, rax
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
mov esi, 0x400
lea rdx, str.Class
mov r8d, esi
mov rcx, r14
mov dword [rsp + 0x54], eax
call fcn.00409d04
lea rdx, str.Class_OnUpdate
mov r8d, esi
mov rcx, r14
mov qword [rsp + 0xa0], rax
call fcn.00409d04
lea rdx, str.App_Name
mov r8d, esi
mov rcx, r14
call fcn.00409d04
lea rdx, str.OS_ICNS
mov r8d, esi
mov rcx, r14
mov rbx, rax
call fcn.00409d04
mov esi, 0x28
lea rdx, str.URL_Required
mov r8d, esi
mov rcx, r14
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
lea rdx, str.jvmMem__old_
mov r8d, esi
mov rcx, r14
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
lea rdx, str.jvmStack__old_
mov r8d, esi
mov rcx, r14
mov dword [rsp + 0x80], eax
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
mov rsi, qword [0x0045cc98]
cmp rsi, r12
mov dword [rsp + 0x60], eax
je 0x403106
lea rcx, str._Extractor__Using_private_JRE__s_n
mov rdx, rsi
call fcn.0040bd0c
lea rcx, [rsp + 0x2e0]
mov rdx, rsi
mov byte [rsp + 0x2e0], r12b
call fcn.004174b0
lea rdx, [0x0044c4cc]
lea rcx, [rsp + 0x2e0]
call fcn.0040bc6c
lea rdx, [rsp + 0x2e0]
lea rcx, [rsp + 0xc0]
mov byte [rsp + 0xc0], r12b
call fcn.004174b0
lea rdx, str.windowslauncher.exe
lea rcx, [rsp + 0xc0]
call fcn.0040bc6c
lea rcx, [rsp + 0xc0]
call fcn.0040b4b0
cmp eax, r12d
jne 0x402239
lea rdx, [rsp + 0x2e0]
lea rcx, [rsp + 0xc0]
mov byte [rsp + 0xc0], r12b
call fcn.004174b0
lea rdx, str.javaw.exe
lea rcx, [rsp + 0xc0]
call fcn.0040bc6c
lea rcx, [rsp + 0x2e0]
mov rdx, rbx
call fcn.0040bc6c
lea rdx, str..exe
lea rcx, [rsp + 0x2e0]
call fcn.004174b0
lea rcx, [rsp + 0x2e0]
call fcn.0040b4b0
cmp eax, r12d
jne 0x4022c2
lea rdx, [rsp + 0x2e0]
lea rcx, str._Extractor__Copying_FILE__s_n
call fcn.0040bd0c
lea rdx, [0x0044c8d8]
lea rcx, [rsp + 0xc0]
call fcn.00419020
cmp rax, r12
jne 0x4022b2
lea rdx, [rsp + 0xc0]
lea rcx, str._Extractor___Unable_to_open_source_file_for_copy__s_n
call fcn.0040bd0c
jmp 0x4022c2
lea rcx, [rsp + 0x2e0]
mov rdx, rax
call fcn.0040199c
mov dl, 0x5c
mov rcx, rsi
call fcn.0040c498
mov ecx, 0x2710
add eax, 1
movsxd rbx, eax
add rbx, rsi
call fcn.004171e0
lea r9, str.JRE_LastSuccessfulOptions_
lea r8, str.JWApps
mov rdx, rbp
mov rcx, rax
mov r12, rax
mov qword [rsp + 0x90], rax
call fcn.0040bcd4
mov rdx, rbx
mov rcx, r12
call fcn.004174b0
lea rcx, str._Extractor__JRE_LSO_file_is__s_n
mov rdx, r12
call fcn.0040bd0c
mov esi, dword [rsp + 0x80]
test esi, esi
jle 0x40235a
mov ecx, 0x64
call fcn.004171e0
lea rdx, str._Xmx_dm_c
xor r9d, r9d
mov rcx, rax
mov r8d, esi
mov rbx, rax
call fcn.00418380
mov ebp, 1
mov qword [r15], rbx
mov edi, ebp
mov dword [rsp + 0x50], ebp
jmp 0x40235f
mov ebp, 1
mov esi, dword [rsp + 0x60]
test esi, esi
jle 0x402396
mov ecx, 0x64
call fcn.004171e0
lea rdx, str._Xms_dm_c
xor r9d, r9d
mov rcx, rax
mov r8d, esi
mov rbx, rax
call fcn.00418380
movsxd r11, edi
add edi, ebp
mov qword [r15 + r11*8], rbx
mov dword [rsp + 0x50], edi
lea rcx, str._Extractor__Building_classpath_n
call fcn.0040bd0c
lea rdx, str.Classpath_Count
mov r8d, 0x28
mov rcx, r14
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
movsxd rbx, eax
mov dword [rsp + 0x78], eax
mov rcx, rbx
mov qword [rsp + 0xb0], rbx
shl rcx, 3
call fcn.004171e0
xor esi, esi
test rbx, rbx
mov qword [rsp + 0x88], rax
jle 0x402490
mov r15, qword [rsp + 0x58]
mov r13, rbx
mov r12, rax
lea rdx, str.Classpath_Entry
mov r8d, 0x400
mov rcx, r14
call fcn.00409d04
mov rbp, rax
mov rcx, rax
mov eax, 1
movsx edx, byte [rcx]
cmp edx, 0x2f
jne 0x402423
mov byte [rcx], 0x5c
add rcx, rax
test edx, edx
jne 0x402418
mov ecx, 0x3e8
call fcn.004171e0
mov rdx, r15
mov rcx, rax
mov rbx, rax
mov byte [rax], 0
call fcn.004174b0
mov rdx, rbp
mov rcx, rbx
call fcn.0040bc6c
mov r11, rbx
mov ebp, 1
movsx eax, byte [r11]
cmp eax, 0x2f
jne 0x402465
mov byte [r11], 0x5c
add r11, rbp
test eax, eax
jne 0x402458
mov qword [r12 + rsi*8], rbx
add rsi, rbp
cmp rsi, r13
jl 0x4023f8
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0x5c8]
mov r15, qword [rsp + 0xa8]
lea rcx, str._Extractor__Creating_launch_properties_n
call fcn.0040bd0c
xor r11d, r11d
xor ecx, ecx
mov rdx, r13
mov al, byte [rdx]
add r11d, ebp
add rdx, rbp
test al, al
jne 0x4024b4
add ecx, ebp
jmp 0x4024b6
xor ecx, ecx
cmp ecx, 2
jl 0x4024a4
lea eax, [r11 + 0x30d3e]
movsxd rcx, eax
call fcn.004171e0
xor r8d, r8d
mov rdx, r13
mov byte [rax], 0
mov rsi, rax
xor eax, eax
mov cl, byte [rdx]
add r8d, ebp
add rdx, rbp
test cl, cl
jne 0x4024e8
add eax, ebp
jmp 0x4024ea
xor eax, eax
cmp eax, 2
jl 0x4024d8
movsxd r8, r8d
mov rdx, r13
mov rcx, rsi
call fcn.00417d40
mov r8, qword [0x0045cd40]
lea rdx, str.update_url
mov rcx, rsi
call fcn.00409cc8
mov rcx, qword [0x0045cd40]
lea rdx, [0x0044cdb4]
call fcn.00419540
test eax, eax
jne 0x40255f
mov rbx, qword [0x0045ccb0]
test rbx, rbx
je 0x40255f
lea rdx, str.jwdyna_
mov rcx, rsi
call fcn.00409bcc
lea rdx, str.update_url
mov rcx, rsi
call fcn.00409c5c
mov rdx, rbx
mov rcx, rsi
call fcn.00409bcc
mov r8, qword [rsp + 0x58]
lea rdx, str.app_dir
mov rcx, rsi
call fcn.00409cc8
mov r8, qword [0x0045ccd8]
lea rdx, str.jre_name
mov rcx, rsi
call fcn.00409cc8
mov r8, qword [rsp + 0x5e8]
lea rdx, str.launched_from_dynprops
mov rcx, rsi
call fcn.00409cc8
lea rcx, str._Extractor__Checking_LSO_file_n
call fcn.0040bd0c
test r12, r12
je 0x4027a3
lea rcx, str._Extractor__Reading__s_n
mov rdx, r12
call fcn.0040bd0c
lea rdx, [0x0044c8d8]
mov rcx, r12
call fcn.00419020
mov rcx, r12
xor ebp, ebp
mov rbx, rax
call fcn.0040b4b0
test eax, eax
je 0x402627
test rbx, rbx
jne 0x402630
cmp ebp, 5
jge 0x4027b1
lea rcx, str._Extractor__LSO_file_does_exist._Retrying___d_...
mov edx, ebp
call fcn.0040bd0c
lea rdx, [0x0044c8d8]
mov rcx, r12
call fcn.00419020
test rax, rax
mov rbx, rax
jne 0x402630
mov ecx, 0x1f4
add ebp, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4025e9
test rbx, rbx
je 0x4027b1
lea rcx, str._Extractor__JRE_LSO_file_exists_n
call fcn.0040bd0c
lea rcx, [rsp + 0xc0]
xor edx, edx
mov r8d, 0x104
call fcn.00419040
lea rdx, str.LSO_Count
mov r8d, 0x28
mov rcx, rbx
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
lea rcx, str._Extractor__Found__ld_JVM_Options_n
mov edx, eax
mov r13d, eax
call fcn.0040bd0c
lea rdx, [0x0044ceb4]
lea rcx, [rsp + 0xc0]
mov r8d, r13d
call fcn.00418380
lea r8, [rsp + 0xc0]
lea rdx, str.jvm_options_count
mov rcx, rsi
call fcn.00409cc8
xor r12d, r12d
test r13d, r13d
movsxd rax, edi
jle 0x402794
add edi, r13d
lea r14, [r15 + rax*8]
mov dword [rsp + 0x50], edi
lea rdx, str.LSO_Entry
mov r8d, 0x400
mov rcx, rbx
call fcn.00409d04
lea rcx, [rsp + 0xc0]
xor edx, edx
mov qword [r14], rax
mov r8d, 0x104
add r14, 8
mov rbp, rax
call fcn.00419040
lea rdx, str.jvm_options__d
lea rcx, [rsp + 0xc0]
mov r8d, r12d
call fcn.00418380
mov rcx, rbp
call fcn.004173f0
cmp rax, 0x64
jae 0x40272c
mov r8, rbp
lea rcx, str._Extractor__Launch_Prop:__s___s_n
jmp 0x402759
lea rcx, [rsp + 0x3f0]
mov r8d, 0x63
mov rdx, rbp
call fcn.00418d50
mov byte [rsp + 0x453], 0
lea r8, [rsp + 0x3f0]
lea rcx, str._Extractor__Launch_Prop:__s___s..._n
lea rdx, [rsp + 0xc0]
call fcn.0040bd0c
lea rdx, [rsp + 0xc0]
mov r8, rbp
mov rcx, rsi
call fcn.00409cc8
mov ebp, 1
add r12d, ebp
cmp r12d, r13d
jl 0x4026c7
mov r14, qword [rsp + 0x98]
jmp 0x402799
mov ebp, 1
mov rcx, rbx
call fcn.0041b550
jmp 0x4027b6
lea rcx, str.Not_a_private_JRE__no_need_to_check_for_LSO_file__n
call fcn.0040bdd8
jmp 0x4027b6
mov ebp, 1
lea rcx, str._Extractor__Writing_launch_properties_file_n
call fcn.0040bd0c
mov r12, qword [rsp + 0x58]
lea rcx, [rsp + 0x1d0]
mov rdx, r12
mov r8b, bpl
mov byte [rsp + 0x1d0], 0
call fcn.00401d04
xor r8d, r8d
xor ecx, ecx
mov rdx, rsi
mov al, byte [rdx]
add r8d, ebp
add rdx, rbp
test al, al
jne 0x4027fa
add ecx, ebp
jmp 0x4027fc
xor ecx, ecx
cmp ecx, 2
jl 0x4027ea
lea rdx, [rsp + 0x1d0]
lea rcx, str._Extractor__Writing_launch_properties_to__s__length:__d__n
add r8d, 0xfffffffe
call fcn.0040bd0c
lea rdx, [0x0044c930]
lea rcx, [rsp + 0x1d0]
call fcn.00419020
test rax, rax
mov rbx, rax
jne 0x40291a
xor ebp, ebp
lea r13d, [rax + 1]
lea rcx, [rsp + 0x1d0]
mov r8b, r13b
mov rdx, r12
mov byte [rsp + 0x1d0], 0
call fcn.00401d04
lea rdx, [rsp + 0x1d0]
lea rcx, str._Retry__Writing_launch_properties_to__s_n
call fcn.0040bd0c
lea rdx, [0x0044c930]
lea rcx, [rsp + 0x1d0]
call fcn.00419020
test rax, rax
mov rbx, rax
jne 0x402917
mov ecx, 0x1f4
add ebp, r13d
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp ebp, 5
jl 0x40283f
mov ecx, 0x800
call fcn.004171e0
mov ecx, 0x104
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea rcx, str._Retry__Attempting_to_write_to__s
mov rdx, rbx
call fcn.0040bd0c
lea rcx, [rsp + 0x1d0]
xor r8d, r8d
mov rdx, rbx
mov byte [rsp + 0x1d0], 0
call fcn.00401d04
lea rdx, [0x0044c930]
lea rcx, [rsp + 0x1d0]
call fcn.00419020
test rax, rax
mov rbx, rax
jne 0x402917
lea rcx, str.Unable_to_write_Launch_Properties_file__Cannot_run__n
call fcn.0040bdd8
lea ecx, [rbx + 0x63]
call fcn.004187f0
int3
mov rbp, r13
lea rcx, str._Extractor__Writing_to_file_n
call fcn.0040bd0c
xor r11d, r11d
xor ecx, ecx
mov rdx, rsi
mov al, byte [rdx]
add r11d, ebp
add rdx, rbp
test al, al
jne 0x40293e
add ecx, ebp
jmp 0x402940
xor ecx, ecx
cmp ecx, 2
jl 0x40292e
lea eax, [r11 - 2]
mov r9, rbx
mov rdx, rbp
movsxd r8, eax
mov rcx, rsi
call fcn.0041abc0
mov rcx, rbx
call fcn.00418cb0
mov rcx, rbx
call fcn.0041b550
lea rcx, str._Extractor__Finished_writing_launch_properties_file_n
call fcn.0040bd0c
mov rsi, qword [rsp + 0x70]
lea r11, [rsp + 0x1d0]
lea rdx, str.Extra_Args_Count
mov r8d, 0x28
mov rcx, r14
mov qword [rsi], r11
mov dword [rsp + 0x68], ebp
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
lea rcx, str._Extractor__Reading__ld_extra_args_n
mov edx, eax
mov ebx, eax
call fcn.0040bd0c
test ebx, ebx
mov r12d, 0x400
jle 0x4029ea
lea eax, [rbx + 1]
add rsi, 8
mov dword [rsp + 0x68], eax
lea rdx, str.Extra_Args_Entry
mov r8d, r12d
mov rcx, r14
call fcn.00409d04
mov qword [rsi], rax
add rsi, 8
sub rbx, rbp
jne 0x4029cc
mov r13d, dword [rsp + 0x54]
cmp r13d, 3
jl 0x402a16
lea rdx, str.Main_Class_JRECompatibility
mov r8d, r12d
mov rcx, r14
call fcn.00409d04
lea rcx, str._Extractor__Read_JRE_compatibility_class__s_n
mov rdx, rax
call fcn.0040bd0c
cmp r13d, 4
jl 0x402a40
lea rdx, str.Main_Class_PostInstall
mov r8d, r12d
mov rcx, r14
call fcn.00409d04
lea rdx, str.Main_Class_PreUninstall
mov r8d, r12d
mov rcx, r14
call fcn.00409d04
cmp r13d, 5
jl 0x402b18
lea rdx, str.App_JVM_Option_Count
mov r8d, 0x28
mov rcx, r14
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
xor r8d, r8d
cmp dword [rsp + 0x80], r8d
mov ebp, eax
lea eax, [r8 + 1]
cmovg r8d, eax
cmp dword [rsp + 0x60], 0
jle 0x402a86
add r8d, eax
xor ebx, ebx
cmp r8d, edi
lea rcx, str._Extractor__jvmArgCount:_d_emptyArgs:_d_so_addToJVM:_d_n
sete bl
mov edx, edi
mov r9d, ebx
call fcn.0040bd0c
lea rcx, str._Extractor__Additional_JRE_option_count_is__d_n
mov edx, ebp
call fcn.0040bd0c
test ebp, ebp
movsxd r11, edi
movsxd r12, ebx
jle 0x402b13
lea rsi, [r15 + r11*8]
mov r13d, 1
lea rdx, str.App_JVM_Option_Entry
mov r8d, 0x400
mov rcx, r14
call fcn.00409d04
test r12, r12
mov rbx, rax
mov rdx, rax
je 0x402af9
lea rcx, str._Extractor__Added_option__s_n
call fcn.0040bd0c
mov qword [rsi], rbx
add edi, r13d
add rsi, 8
jmp 0x402b05
lea rcx, str._Extractor__Skipping_option__s_n
call fcn.0040bd0c
sub rbp, r13
jne 0x402ac1
mov r13d, dword [rsp + 0x54]
mov dword [rsp + 0x50], edi
mov ebp, 1
cmp r13d, 6
jl 0x402b3b
lea rdx, str.Must_Fork
mov r8d, 0x28
mov rcx, r14
call fcn.00409d04
mov rcx, rax
call fcn.00418d30
cmp r13d, 7
jl 0x402c16
xor r12d, r12d
test edi, edi
jle 0x402c16
mov rsi, rbp
mov rbp, r15
lea rdx, str.JVM_Platform_Entry
mov r8d, 0x400
mov rcx, r14
call fcn.00409d04
test rax, rax
mov rbx, rax
je 0x402bfd
mov rcx, rax
call fcn.004173f0
test rax, rax
je 0x402bfd
lea rdx, [0x0044c294]
mov rcx, rbx
call fcn.00418970
test rax, rax
jne 0x402bcf
lea rdx, [0x0044c298]
mov rcx, rbx
call fcn.00418970
test rax, rax
jne 0x402bcf
lea rdx, [0x0044c29c]
mov rcx, rbx
call fcn.00418970
lea rdx, [0x0044c2a0]
mov rcx, rbx
call fcn.00418970
test rax, rax
je 0x402bfd
lea rcx, str._Extractor__Ignoring_platform_specific_option__s_n
mov rdx, rbx
call fcn.0040bd0c
movsxd rcx, edi
mov r11, rsi
cmp rsi, rcx
jge 0x402bfa
mov rax, qword [r15 + r11*8]
add r11, 1
cmp r11, rcx
mov qword [rbp], rax
jl 0x402be9
sub edi, 1
add r12d, 1
add rsi, 1
add rbp, 8
cmp r12d, edi
jl 0x402b56
mov dword [rsp + 0x50], edi
xor ebp, ebp
test edi, edi
mov dword [rsp + 0x54], ebp
jle 0x402e04
lea r12d, [rbp + 1]
mov r13, r15
mov qword [rsp + 0x60], r15
mov rbx, r12
mov qword [rsp + 0x90], r12
mov rsi, qword [r13]
lea rdx, str.sun.awt.fontconfig
mov rcx, rsi
call fcn.00418970
test rax, rax
je 0x402c89
lea rcx, str._Extractor__Ignoring_invalid_option__s_n
mov rdx, rsi
call fcn.0040bd0c
movsxd rcx, edi
mov r11, rbx
cmp rbx, rcx
jge 0x402c7d
mov rax, qword [r15 + r11*8]
add r11, r12
cmp r11, rcx
mov qword [r13], rax
jl 0x402c6d
sub edi, r12d
mov dword [rsp + 0x50], edi
jmp 0x402dd9
mov rcx, qword [rsp + 0x58]
mov rbp, rsi
xor r14d, r14d
call fcn.004173f0
lea rcx, str.JW_CWD
mov qword [rsp + 0x80], rax
call fcn.004173f0
xor r12d, r12d
cmp byte [rsi], r12b
mov r15, rax
je 0x402ceb
lea r13d, [r14 + 1]
lea rbx, [r12 + rsi]
lea rdx, str.JW_CWD
mov rcx, rbx
call fcn.00418970
cmp rax, rbx
jne 0x402cdc
add r14, r13
lea r12, [r12 + r15 - 1]
add r12, r13
cmp byte [r12 + rsi], 0
jne 0x402cbc
mov r13, qword [rsp + 0x60]
mov rax, qword [rsp + 0x80]
sub rax, r15
imul rax, r14
lea rcx, [rax + r12 + 1]
call fcn.004171e0
xor r12d, r12d
cmp byte [rsi], r12b
mov rbx, rax
je 0x402d69
mov rsi, qword [rsp + 0x80]
mov r13, qword [rsp + 0x58]
lea edi, [r12 + 1]
lea rdx, str.JW_CWD
mov rcx, rbp
call fcn.00418970
cmp rax, rbp
jne 0x402d49
lea rcx, [rbx + r12]
mov rdx, r13
call fcn.00417550
add r12, rsi
add rbp, r15
jmp 0x402d56
mov al, byte [rbp]
mov byte [rbx + r12], al
add r12, rdi
add rbp, rdi
cmp byte [rbp], 0
jne 0x402d21
mov r13, qword [rsp + 0x60]
mov edi, dword [rsp + 0x50]
mov rsi, qword [r13]
test rbx, rbx
mov byte [rbx + r12], 0
je 0x402db8
mov rdx, rsi
mov rcx, rbx
call fcn.00419540
test eax, eax
je 0x402db8
mov r9, qword [rsp + 0x58]
lea rcx, str._Extractor___s_____s___s__n
mov r8, rbx
mov rdx, rsi
call fcn.0040bd0c
mov r11, rbx
mov r12d, 1
movsx eax, byte [r11]
cmp eax, 0x2f
jne 0x402daf
mov byte [r11], 0x5c
add r11, r12
test eax, eax
jne 0x402da2
jmp 0x402dc1
mov rbx, rsi
mov r12d, 1
mov ebp, dword [rsp + 0x54]
mov r15, qword [rsp + 0xa8]
mov qword [r13], rbx
mov rbx, qword [rsp + 0x90]
add ebp, r12d
add rbx, r12
add r13, 8
cmp ebp, edi
mov dword [rsp + 0x54], ebp
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x60], r13
jl 0x402c3b
mov r14, qword [rsp + 0x98]
movsxd rbx, dword [rsp + 0x5d0]
movsxd r12, dword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
test rbx, rbx
jle 0x402e37
mov rdx, qword [rsp + 0x5d8]
mov r8, rbx
lea rcx, [r13 + r12*8]
shl r8, 3
call fcn.00417d40
add r12d, ebx
lea rdx, [rsp + 0x2e0]
lea rcx, str._Extractor___Launch__Executable:__s_n
call fcn.0040bd0c
mov rdx, qword [rsp + 0xa0]
lea rcx, str._Extractor___Launch__Class:__s_n
call fcn.0040bd0c
xor esi, esi
xor ebx, ebx
test edi, edi
movsxd rbp, edi
jle 0x402e90
lea r13d, [rsi + 1]
mov r8, qword [r15 + rbx*8]
lea rcx, str._Extractor___Launch__JVM_Argument__d:__s_n
mov edx, esi
call fcn.0040bd0c
add rbx, r13
add esi, r13d
cmp rbx, rbp
jl 0x402e6e
mov r13, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xb0]
xor esi, esi
xor ebx, ebx
test rbp, rbp
jle 0x402ed7
mov r14, qword [rsp + 0x88]
lea r13d, [rsi + 1]
mov r8, qword [r14 + rbx*8]
lea rcx, str._Extractor___Launch__ClassPath__d:__s_n
mov edx, esi
call fcn.0040bd0c
add rbx, r13
add esi, r13d
cmp rbx, rbp
jl 0x402ead
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0x70]
xor esi, esi
xor ebx, ebx
test r12d, r12d
movsxd rbp, r12d
jle 0x402f0d
lea r15d, [rsi + 1]
mov r8, qword [r13 + rbx*8]
lea rcx, str._Extractor___Launch__App_Argument__d:__.120s_n
mov edx, esi
call fcn.0040bd0c
add rbx, r15
add esi, r15d
cmp rbx, rbp
jl 0x402ee7
mov r15, qword [rsp + 0xa8]
lea rcx, str._Extractor__This_is_a_newer_extractor..._launchclass_is__d_n
xor edx, edx
call fcn.0040bd0c
mov rcx, r14
call fcn.0041b550
mov rdx, qword [0x0045cc98]
lea rcx, [rsp + 0xc0]
xor ebp, ebp
mov byte [rsp + 0xc0], bpl
call fcn.004174b0
lea rdx, [rsp + 0xc0]
lea rcx, str._Extractor__JRE_folder_is__s_n
call fcn.0040bd0c
cmp dword [0x0045ccc0], ebp
jne 0x403000
lea rcx, str._Extractor__Force_spawn_is__d_so_attempting_to_launch_via_JNI_n
xor edx, edx
call fcn.0040bd0c
lea rcx, str.JNI_Launch
call fcn.0040bed8
mov rax, qword [rsp + 0x88]
mov esi, dword [rsp + 0x78]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0xc0]
mov r9d, edi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r15
call fcn.00407150
lea rcx, str._Extractor__Return_code_for_JNI_launch_was__d_n
mov edx, eax
mov ebx, eax
call fcn.0040bd0c
lea rcx, str.JNI_Launch
call fcn.0040bf10
cmp ebx, ebp
jne 0x402ff2
xor eax, eax
add rsp, 0x578
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rcx, str._Extractor__JNI_launch_failed._Attempting_legacy_spawn_instead_n
call fcn.0040bd0c
jmp 0x403004
mov esi, dword [rsp + 0x78]
lea rcx, str._Extractor__Attempting_spawn_launch_n
call fcn.0040bd0c
lea rcx, str.Spawn_launch
call fcn.0040bed8
mov rdx, qword [rsp + 0xa0]
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x2e0]
mov r9, r15
mov r8d, edi
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x5d0], ebp
call fcn.00401de0
mov rbx, rax
call fcn.00408298
mov rdx, qword [rbx]
mov rcx, rax
mov rdi, rax
call fcn.00408308
mov ecx, dword [rsp + 0x5d0]
mov r12d, 1
cmp ecx, r12d
jle 0x4030ab
add rbx, 8
add ecx, 0xffffffff
mov esi, ecx
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.004082d0
add rbx, 8
sub rsi, r12
jne 0x403097
xor edx, edx
mov rcx, rdi
call fcn.00408544
movsxd rbx, eax
cmp rbx, rbp
je 0x4030fe
mov rcx, qword [0x004691f8]
cmp rcx, rbp
je 0x4030d7
call fcn.0040b4b0
cmp eax, ebp
je 0x4030d7
call fcn.0040bf48
lea rcx, [0x0044d538]
call fcn.0040bd0c
lea rcx, str._ERROR__Attempt_to_launch_app_failed_with_return_code__ld___app_likely_did_not_launch_at_all__n
mov rdx, rbx
call fcn.0040bd0c
lea rcx, [0x0044d538]
call fcn.0040bd0c
mov ecx, ebx
call fcn.004187f0
int3
lea rcx, str.No_JRE_available__n
call fcn.0040bdd8
mov ecx, 1
call fcn.004187f0
int3