Function at 0x402e10
Capabilities:
Query environment variable
Terminate process

Disassembly:
mov r11, rsp
sub rsp, 0x158
mov rax, qword [0x0040f300]
mov qword [rsp + 0x140], rax
mov qword [r11 + 8], rbx
lea rcx, str.CLASSPATH
mov byte [rsp + 0x20], 0x3b
mov qword [r11 + 0x20], rdi
mov byte [rsp + 0x21], 0
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
mov rbx, rax
je 0x402ea7
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
add rcx, 0x27
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rdi, rax
jne 0x402e8a
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [rdi + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
lea rdx, str._Denv.class.path_s
mov r8, rbx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_sprintf]
xor edx, edx
mov rcx, rdi
call fcn.00401e80
lea rcx, [rsp + 0x30]
mov edx, 0x104
call fcn.00404750
test al, al
jne 0x402ecf
lea rcx, str.Cant_determine_application_home
mov dl, 1
call fcn.00404b70
xor al, al
jmp 0x40318b
xor eax, eax
lea rdi, [rsp + 0x30]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
add rcx, 0x27
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rdi, rax
jne 0x402f0b
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [rdi + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
lea r8, [rsp + 0x30]
lea rdx, str._Dapplication.home_s
mov rcx, rax
mov qword [rsp + 0x168], rbp
call qword [sym.imp.msvcrt.dll_sprintf]
xor edx, edx
mov rcx, rdi
call fcn.00401e80
xor eax, eax
lea rdi, [rsp + 0x30]
mov rcx, 0xffffffffffffffff
lea rbx, str.lib_tools.jar
lea rbp, str.Error:_the__J_option_should_not_be_followed_by_a_space.
repne scasb al, byte [rdi]
lea r11d, [rax + 0x28]
mov rdx, rbx
not rcx
lea r8, [rcx - 1]
nop
mov rdi, qword [rdx]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
add rdx, 8
not rcx
dec rcx
add ecx, r8d
cmp rdx, rbp
lea r11d, [r11 + rcx + 1]
jl 0x402f60
lea eax, [r11 + 1]
mov qword [rsp + 0x170], rsi
movsxd rcx, eax
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rsi, rax
jne 0x402fb9
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [rsi + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
mov rax, qword [str._Djava.class.path]
mov qword [rsi], rax
mov rax, qword [0x0040cc70]
mov qword [rsi + 8], rax
movzx eax, word [0x0040cc78]
mov word [rsi + 0x10], ax
movzx eax, byte [0x0040cc7a]
mov byte [rsi + 0x12], al
nop
nop
nop
nop
xor eax, eax
mov rdi, rsi
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x30]
nop
nop
nop
movzx eax, byte [rdx + rcx]
inc rcx
test al, al
mov byte [rdi + rcx - 2], al
jne 0x403010
mov rdx, qword [rbx]
xor eax, eax
mov rdi, rsi
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, byte [rdx + rcx]
inc rcx
test al, al
mov byte [rdi + rcx - 2], al
jne 0x403040
xor eax, eax
mov rdi, rsi
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor edx, edx
lea r8, [rsp + 0x20]
nop
nop
nop
movzx eax, byte [r8 + rdx]
inc rdx
test al, al
mov byte [rdi + rdx - 2], al
jne 0x403070
add rbx, 8
cmp rbx, rbp
jl 0x402ff0
movsxd rbx, dword [0x0040f320]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
mov byte [rcx + rsi - 2], al
mov eax, dword [0x0040f330]
cmp ebx, eax
jl 0x403156
mov rbp, qword [0x0040f328]
test rbp, rbp
jne 0x4030fe
lea ecx, [rbp + 0x40]
mov dword [0x0040f330], 4
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rdi, rax
jne 0x4030f5
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [rbp + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
mov qword [0x0040f328], rax
jmp 0x40315d
add eax, eax
movsxd rcx, eax
mov dword [0x0040f330], eax
shl rcx, 4
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rdi, rax
jne 0x403132
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [rdi + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
mov r8, rbx
mov rdx, rbp
mov rcx, rax
shl r8, 4
call sub.msvcrt.dll_memcpy
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_free]
mov qword [0x0040f328], rdi
jmp 0x40315d
mov rdi, qword [0x0040f328]
mov rbp, qword [rsp + 0x168]
mov rax, rbx
shl rax, 4
inc ebx
mov qword [rax + rdi], rsi
mov rsi, qword [rsp + 0x170]
mov qword [rax + rdi + 8], 0
mov al, 1
mov dword [0x0040f320], ebx
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x140]
call fcn.00409d20
add rsp, 0x158
ret