Function at 0x402614
Capabilities:
Query environment variable
Terminate process

Disassembly:
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rbx, rcx
lea rcx, str.JDK_ALTERNATE_VM
mov r12b, r8b
mov r13, rdx
mov esi, 0xffffffff
call qword [sym.imp.msvcrt.dll_getenv]
movsxd rbx, dword [rbx]
mov rdi, rax
lea r9d, [rbx + 1]
movsxd rcx, r9d
shl rcx, 3
call sub.jli.dll_JLI_MemAlloc
mov rdx, qword [r13]
lea ebp, [rsi + 2]
mov rcx, qword [rdx]
mov rdx, qword [0x00409098]
mov r15, rax
mov qword [rax], rcx
mov qword [rsp + 0x28], rax
mov eax, ebp
cmp rax, rbx
mov rcx, rax
mov qword [rsp + 0x20], rax
mov r14, rbx
jge 0x402780
mov r12, qword [rsp + 0x88]
lea r13, [r15 + 8]
mov r15, qword [rsp + 0x80]
mov dword [rsp + 0x98], ebx
mov rax, qword [r12]
mov rbx, qword [rax + rcx*8]
cmp byte [rbx], 0x2d
jne 0x40274d
mov rcx, rbx
call fcn.00401ebc
test eax, eax
js 0x4026ee
mov rdx, qword [0x00409098]
mov esi, eax
cdqe
shl rax, 5
mov rdi, qword [rax + rdx]
inc rdi
dec dword [r15]
mov rcx, qword [rsp + 0x20]
jmp 0x402757
lea rdx, str._XXaltjvm
mov r8d, 0xa
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_strncmp]
test eax, eax
je 0x402722
lea rdx, str._J_XXaltjvm
mov r8d, 0xc
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_strncmp]
test eax, eax
jne 0x402741
cmp byte [rbx + 1], 0x58
mov rdx, qword [0x00409098]
mov edi, 0xc
lea eax, [rdi - 2]
cmove rdi, rax
add rdi, rbx
lea esi, [rax - 0xb]
jmp 0x4026e7
mov rdx, qword [0x00409098]
mov rcx, qword [rsp + 0x20]
inc ebp
mov qword [r13], rbx
add r13, 8
inc rcx
cmp rcx, r14
mov qword [rsp + 0x20], rcx
jl 0x4026b1
mov r12b, byte [rsp + 0x90]
mov r15, qword [rsp + 0x28]
mov r13, qword [rsp + 0x88]
mov eax, r14d
movsxd r8, eax
movsxd rax, ebp
cmp r8, r14
jge 0x4027ae
lea r9, [r15 + rax*8]
mov eax, r14d
sub eax, r8d
add ebp, eax
mov rax, qword [r13]
mov rcx, qword [rax + r8*8]
inc r8
mov qword [r9], rcx
add r9, 8
cmp r8, r14
jl 0x402797
test rdi, rdi
movsxd rax, ebp
mov qword [r15 + rax*8], 0
mov rax, qword [rsp + 0x80]
mov qword [r13], r15
mov dword [rax], ebp
jne 0x402810
mov rbx, qword [rdx]
inc rbx
cmp dword [rdx + 8], 4
jne 0x4027ef
call fcn.00403e94
cmp al, 1
jne 0x4027ef
mov rax, qword [0x00409098]
mov rbx, qword [rax + 0x18]
inc rbx
cmp byte [0x00409082], 0
je 0x402808
lea rcx, str.Default_VM:__s_n
mov rdx, rbx
call qword [sym.imp.msvcrt.dll_printf]
mov rax, rbx
jmp 0x402937
test esi, esi
js 0x402934
xor ebx, ebx
movsxd rax, esi
lea ebp, [rbx + 1]
shl rax, 5
jmp 0x40285b
movsxd rcx, esi
shl rcx, 5
mov rcx, qword [rcx + rdx + 0x10]
call fcn.00401ebc
cmp ebx, dword [0x004090a0]
jg 0x40288b
test eax, eax
js 0x4028a8
mov rdx, qword [0x00409098]
mov esi, eax
cdqe
shl rax, 5
mov rdi, qword [rax + rdx]
add rdi, rbp
add ebx, ebp
cmp dword [rax + rdx + 8], ebp
je 0x402826
movsxd rcx, esi
shl rcx, 5
mov r8d, dword [rcx + rdx + 8]
sub r8d, 2
je 0x402901
dec r8d
je 0x4028d8
cmp r8d, 2
je 0x40292e
jmp 0x402934
test r12b, r12b
jne 0x4028f8
lea rcx, str.Error:_Corrupt_jvm.cfg_file__cycle_in_alias_list.
mov dl, bpl
call fcn.00403cfc
mov ecx, ebp
call qword [sym.imp.msvcrt.dll_exit]
int3
test r12b, r12b
jne 0x4028f8
mov rdx, qword [0x00409098]
movsxd rax, esi
lea rcx, str.Error:_Unable_to_resolve_VM_alias__s
shl rax, 5
mov r8b, bpl
mov rdx, qword [rax + rdx + 0x10]
call fcn.00403d24
mov ecx, ebp
call qword [sym.imp.msvcrt.dll_exit]
int3
test r12b, r12b
jne 0x4028f8
lea rcx, str.Error:__s_VM_not_supported
mov r8b, bpl
mov rdx, rdi
call fcn.00403d24
mov ecx, ebp
call qword [sym.imp.msvcrt.dll_exit]
int3
lea rax, str.ERROR
jmp 0x402937
test r12b, r12b
jne 0x40292e
mov r9, qword [rdx]
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, str.Warning:__s_VM_not_supported___s_VM_will_be_used_n
add r9, rbp
add rcx, 0x60
mov r8, rdi
call qword [sym.imp.msvcrt.dll_fprintf]
mov rdx, qword [0x00409098]
mov rdi, qword [rdx]
add rdi, rbp
mov rax, rdi
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret