Function at 0x401fa0
Capabilities:
Query environment variable
Terminate process

Disassembly:
mov r11, rsp
sub rsp, 0x1c8
mov rax, qword [0x0040f310]
mov qword [rsp + 0x180], rax
mov rax, qword [0x0040c3f0]
mov qword [r11 - 8], rbp
mov qword [r11 - 0x10], rsi
mov ebp, ecx
lea rcx, [rsp + 0x60]
mov qword [r11 - 0x18], rdi
mov qword [rcx], rax
mov rax, qword [0x0040c3f8]
mov qword [r11 - 0x30], r14
mov qword [rcx + 8], rax
movzx eax, word [0x0040c400]
mov rdi, r8
mov word [rcx + 0x10], ax
movzx eax, byte [0x0040c402]
mov qword [rsp + 0x58], r8
mov byte [rcx + 0x12], al
mov rsi, rdx
xor r14d, r14d
lea rcx, [rsp + 0x73]
mov r8d, 0x109
xor edx, edx
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x24], r14d
mov dword [rsp + 0x20], 0xffffffff
call sub.msvcrt.dll_memset
lea rcx, str._JAVA_VERSION_SET
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
je 0x402058
cmp byte [rax], r14b
je 0x40245b
mov rcx, rax
call qword [sym.imp.msvcrt.dll__strdup]
mov qword [rdi], rax
jmp 0x40245b
lea eax, [rbp + 1]
mov qword [rsp + 0x1a0], r13
mov qword [rsp + 0x190], r15
movsxd rcx, eax
shl rcx, 3
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov r15, rax
mov qword [rsp + 0x50], rax
jne 0x40209d
lea rcx, str.malloc
call qword [sym.imp.msvcrt.dll_perror]
lea ecx, [r15 + 1]
call qword [sym.imp.msvcrt.dll_exit]
int3
mov rax, qword [rsi]
add rsi, 8
mov qword [rsp + 0x1e8], rbx
mov qword [r15], rax
mov rbx, qword [rsi]
dec ebp
test rbx, rbx
mov qword [rsp + 0x1a8], r12
mov r13d, 1
lea r12, [r15 + 8]
je 0x402212
mov r15d, r14d
cmp byte [rbx], 0x2d
jne 0x402208
lea rdx, [0x0040c420]
mov r8d, 9
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_strncmp]
test eax, eax
jne 0x402103
lea rdi, [rbx + 9]
mov qword [rsp + 0x48], rdi
jmp 0x4021f5
lea rdi, [0x0040c430]
mov rax, rbx
sub rdi, rbx
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x402122
inc rax
test ecx, ecx
jne 0x402110
test edx, edx
jne 0x402130
mov dword [rsp + 0x20], r13d
jmp 0x4021f5
lea rdi, [0x0040c448]
mov rax, rbx
sub rdi, rbx
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x402152
inc rax
test ecx, ecx
jne 0x402140
test edx, edx
jne 0x402160
mov dword [rsp + 0x20], r14d
jmp 0x4021f5
lea rdi, [0x0040c460]
mov rax, rbx
sub rdi, rbx
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x402182
inc rax
test ecx, ecx
jne 0x402170
test edx, edx
lea rdi, [0x0040c468]
mov rcx, rbx
cmove r15d, r13d
sub rdi, rbx
movzx edx, byte [rcx]
movzx eax, byte [rcx + rdi]
sub edx, eax
jne 0x4021a7
inc rcx
test eax, eax
jne 0x402195
test edx, edx
je 0x4021d6
lea rdi, [0x0040c474]
mov rax, rbx
sub rdi, rbx
nop
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x4021d2
inc rax
test ecx, ecx
jne 0x4021c0
test edx, edx
jne 0x4021ed
cmp ebp, 2
jl 0x4021ed
mov qword [r12], rbx
mov rbx, qword [rsi + 8]
add r12, 8
dec ebp
add rsi, 8
mov qword [r12], rbx
add r12, 8
mov rbx, qword [rsi + 8]
add rsi, 8
dec ebp
test rbx, rbx
jne 0x4020d2
mov dword [rsp + 0x24], r15d
mov r15, qword [rsp + 0x50]
test ebp, ebp
jg 0x40221b
mov rdi, r14
jmp 0x40222d
mov rdi, qword [rsi]
add r12, 8
dec ebp
mov qword [r12 - 8], rdi
add rsi, 8
test ebp, ebp
jle 0x402247
mov rax, qword [rsi]
dec ebp
add r12, 8
mov qword [r12 - 8], rax
add rsi, 8
test ebp, ebp
jg 0x402231
cmp dword [rsp + 0x24], r14d
mov qword [r12], r14
mov r12, qword [rsp + 0x1a8]
je 0x4022a7
test rdi, rdi
je 0x4022a7
lea rdx, [rsp + 0x28]
mov rcx, rdi
call fcn.004064b0
test eax, eax
je 0x4022b8
cmp eax, 0xffffffff
jne 0x40228a
lea rcx, str.Unable_to_access_jarfile__s
movzx r8d, r13b
mov rdx, rdi
call fcn.00404b90
jmp 0x40229d
lea rcx, str.Invalid_or_corrupt_jarfile__s
movzx r8d, r13b
mov rdx, rdi
call fcn.00404b90
mov ecx, r13d
call qword [sym.imp.msvcrt.dll_exit]
int3
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], r14
mov rcx, r14
xor al, al
jmp 0x4022c7
movzx eax, byte [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
mov edi, dword [rsp + 0x20]
test rdx, rdx
cmovne rcx, rdx
movzx edx, al
cmp edi, 0xffffffff
movzx eax, dil
mov qword [rsp + 0x38], rcx
cmovne edx, eax
test r14, r14
mov byte [rsp + 0x40], dl
je 0x402308
mov rcx, r14
call qword [sym.imp.msvcrt.dll__strdup]
mov rcx, qword [rsp + 0x58]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x402435
call fcn.00406f60
test eax, eax
jne 0x402339
mov rdx, qword [rsp + 0x38]
lea rcx, str.Syntax_error_in_version_specification___s_
movzx r8d, r13b
call fcn.00404b90
mov ecx, r13d
call qword [sym.imp.msvcrt.dll_exit]
int3
lea rcx, [rsp + 0x28]
call fcn.00404da0
cmp byte [0x0040f352], 0
mov rbx, rax
je 0x402394
mov rcx, qword [rsp + 0x38]
test rax, rax
lea r9, [0x0040c4e4]
cmovne r9, rax
cmp byte [rsp + 0x40], 0
lea rax, [0x0040c4ec]
lea r8, str.false
lea rdx, str.null
cmovne r8, rax
test rcx, rcx
cmovne rdx, rcx
lea rcx, str.JRE_Version___s__JRE_Restrict_Search___s_Selected___s_n
call qword [sym.imp.msvcrt.dll_printf]
test rbx, rbx
jne 0x4023d1
mov rdx, qword [rsp + 0x38]
lea rcx, [0x0040c548]
call fcn.00406c30
test eax, eax
jne 0x402435
mov rdx, qword [rsp + 0x38]
lea rcx, str.Unable_to_locate_JRE_meeting_specification___s_
movzx r8d, r13b
call fcn.00404b90
mov ecx, r13d
call qword [sym.imp.msvcrt.dll_exit]
int3
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x40241f
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 0x104
ja 0x402490
lea rdi, [rsp + 0x60]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
inc rcx
test al, al
mov byte [rdi + rcx - 2], al
jne 0x402410
lea rcx, [rsp + 0x60]
call qword [sym.imp.msvcrt.dll__putenv]
mov rdx, r15
mov rcx, rbx
call fcn.00405030
call fcn.00406740
mov rcx, r15
call qword [sym.imp.msvcrt.dll_free]
mov rbx, qword [rsp + 0x1e8]
mov r13, qword [rsp + 0x1a0]
mov r15, qword [rsp + 0x190]
mov r14, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rbp, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x180]
call fcn.00409d10
add rsp, 0x1c8
ret
lea rcx, str.Error:_main_class:_attribute_exceeds_system_limits_n
movzx edx, r13b
call fcn.00404b60
mov ecx, r13d
call qword [sym.imp.msvcrt.dll_exit]
int3