Function at 0x4033d8
Capabilities:
Query environment variable
Terminate process

Disassembly:
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x418
mov rax, qword [0x00409048]
mov qword [rsp + 0x400], rax
lea rcx, str._JAVA_LAUNCHER_DEBUG
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
mov ebp, 1
je 0x403445
lea rcx, str._____JAVA_LAUNCHER_DEBUG_____n
mov byte [0x00409082], bpl
call qword [sym.imp.msvcrt.dll_printf]
mov rdx, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x450]
lea r8, [rsp + 0x48]
call fcn.004011c8
mov r11d, dword [rsp + 0x450]
inc r11d
movsxd rcx, r11d
shl rcx, 3
call sub.jli.dll_JLI_MemAlloc
mov ecx, dword [rsp + 0x450]
xor r9d, r9d
inc ecx
mov r11, rax
lea r12d, [r9 + 8]
test ecx, ecx
jle 0x4034ad
xor r8d, r8d
mov rcx, qword [rsp + 0x40]
add r9d, ebp
mov rdx, qword [r8 + rcx]
mov qword [r8 + r11], rdx
mov eax, dword [rsp + 0x450]
add r8, r12
inc eax
cmp r9d, eax
jl 0x40348c
mov qword [rsp + 0x30], r11
mov r14d, 0x104
lea rax, [rsp + 0x1e0]
lea r8, [rsp + 0x2f0]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x450]
mov r9d, r14d
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
call fcn.00404bb8
cmp byte [0x00409082], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
je 0x40350c
call fcn.00403c84
mov rbx, rax
jmp 0x403511
mov rbx, qword [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x1e0]
call fcn.00404b20
test al, al
jne 0x403533
mov ecx, 6
call qword [sym.imp.msvcrt.dll_exit]
int3
cmp byte [0x00409082], 0
je 0x40355c
call fcn.00403c84
sub rax, rbx
mov rcx, rax
call fcn.00403cd0
lea rcx, str._ld_micro_seconds_to_LoadJavaVM_n
mov rdx, rax
call qword [sym.imp.msvcrt.dll_printf]
mov edi, dword [rsp + 0x450]
mov rsi, qword [rsp + 0x40]
lea rax, str.java
sub edi, ebp
mov qword [0x00409078], rax
add rsi, r12
lea ebx, [rdi + 4]
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x450], edi
lea eax, [rbx + 1]
movsxd rcx, eax
shl rcx, 3
call sub.jli.dll_JLI_MemAlloc
lea r8, section..data
mov dword [rsp + 0x450], ebx
mov rcx, r8
mov r9b, 0x2d
mov r10b, 0x4a
mov r11, rax
mov qword [rsp + 0x40], rax
lea rbx, str.lib_tools.jar
mov rax, qword [rcx]
cmp byte [rax], r9b
jne 0x4035d7
cmp byte [rax + 1], r10b
jne 0x4035d7
add rax, 2
mov qword [r11], rax
add r11, r12
add rcx, r12
cmp rcx, rbx
jl 0x4035bf
xor eax, eax
test edi, edi
movsxd rdx, edi
jle 0x403612
mov rcx, qword [rsi + rax*8]
cmp byte [rcx], r9b
jne 0x40360a
cmp byte [rcx + 1], r10b
jne 0x40360a
add rcx, 2
cmp byte [rcx], 0
je 0x4036d4
mov qword [r11], rcx
add r11, r12
add rax, rbp
cmp rax, rdx
jl 0x4035e8
mov rax, qword [r8]
cmp byte [rax], r9b
jne 0x403620
cmp byte [rax + 1], r10b
je 0x403626
mov qword [r11], rax
add r11, r12
add r8, r12
cmp r8, rbx
jl 0x403612
xor eax, eax
test edi, edi
jle 0x403651
mov rcx, qword [rsi + rax*8]
cmp byte [rcx], r9b
jne 0x403643
cmp byte [rcx + 1], r10b
je 0x403649
mov qword [r11], rcx
add r11, r12
add rax, rbp
cmp rax, rdx
jl 0x403634
lea rcx, str.CLASSPATH
mov qword [r11], 0
mov byte [rsp + 0x48], 0x3b
mov byte [rsp + 0x49], 0
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
mov rdi, rax
je 0x4036a8
mov rcx, rax
call sub.msvcrt.dll_strlen
lea rcx, [rax + 0x28]
call sub.jli.dll_JLI_MemAlloc
lea rdx, str._Denv.class.path_s
mov r8, rdi
mov rcx, rax
mov rbx, rax
call qword [sym.imp.msvcrt.dll_sprintf]
xor edx, edx
mov rcx, rbx
call fcn.004010c8
lea rcx, [rsp + 0xd0]
mov edx, r14d
call fcn.004039e0
test al, al
jne 0x4036ec
lea rcx, str.Cant_determine_application_home
mov dl, bpl
call fcn.00403cfc
mov ecx, ebp
call qword [sym.imp.msvcrt.dll_exit]
int3
lea rcx, str.Error:_the__J_option_should_not_be_followed_by_a_space.
mov dl, bpl
call fcn.00403cfc
mov ecx, ebp
call qword [sym.imp.msvcrt.dll_exit]
int3
lea rcx, [rsp + 0xd0]
call sub.msvcrt.dll_strlen
lea rcx, [rax + 0x28]
call sub.jli.dll_JLI_MemAlloc
lea r8, [rsp + 0xd0]
lea rdx, str._Dapplication.home_s
mov rcx, rax
mov rbx, rax
call qword [sym.imp.msvcrt.dll_sprintf]
xor edx, edx
mov rcx, rbx
call fcn.004010c8
lea rcx, [rsp + 0xd0]
mov esi, 0x28
call sub.msvcrt.dll_strlen
lea rdi, str.lib_tools.jar
lea r14, [0x00409030]
mov rbp, rax
mov rbx, rdi
mov rcx, qword [rbx]
call sub.msvcrt.dll_strlen
add rbx, r12
add eax, ebp
cmp rbx, r14
lea esi, [rsi + rax + 1]
jl 0x40374d
lea eax, [rsi + 1]
movsxd rcx, eax
call sub.jli.dll_JLI_MemAlloc
lea rdx, str._Djava.class.path
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_strcpy
lea rdx, [rsp + 0xd0]
mov rcx, rbx
call sub.msvcrt.dll_strcat
mov rdx, qword [rdi]
mov rcx, rbx
call sub.msvcrt.dll_strcat
lea rdx, [rsp + 0x48]
mov rcx, rbx
call sub.msvcrt.dll_strcat
add rdi, r12
cmp rdi, r14
jl 0x403780
mov rcx, rbx
call sub.msvcrt.dll_strlen
xor edx, edx
mov rcx, rbx
mov byte [rax + rbx - 1], 0
call fcn.004010c8
lea rcx, str.CLASSPATH
call qword [sym.imp.msvcrt.dll_getenv]
lea r11, [rsp + 0x1e0]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], r11
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x450]
mov qword [rsp + 0x20], rax
call fcn.00402948
test al, al
jne 0x403816
mov ecx, dword [rsp + 0x48]
call qword [sym.imp.msvcrt.dll_exit]
int3
mov rdi, qword [rsp + 0x58]
test rdi, rdi
je 0x403851
mov rcx, rdi
call sub.msvcrt.dll_strlen
lea rcx, [rax + 0x28]
call sub.jli.dll_JLI_MemAlloc
lea rdx, str._Djava.class.path_s
mov r8, rdi
mov rcx, rax
mov rbx, rax
call qword [sym.imp.msvcrt.dll_sprintf]
xor edx, edx
mov rcx, rbx
call fcn.004010c8
mov r12, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x450]
mov rcx, r12
mov rdx, rdi
call fcn.00401b58
lea rcx, str._Dsun.java.launcherSUN_STANDARD
xor edx, edx
call fcn.004010c8
call fcn.00403e90
lea rcx, str._JAVA_SPLASH_JAR
call qword [sym.imp.msvcrt.dll_getenv]
lea rcx, str._JAVA_SPLASH_FILE
mov rbp, rax
call qword [sym.imp.msvcrt.dll_getenv]
test rbp, rbp
mov rbx, rax
je 0x4038d9
lea r8, [rsp + 0x48]
mov rdx, rax
mov rcx, rbp
call sub.jli.dll_JLI_JarUnpackFile
test rax, rax
mov rsi, rax
je 0x4038eb
call fcn.00404db8
mov edx, dword [rsp + 0x48]
mov rcx, rsi
call fcn.00404d40
mov rcx, rsi
call sub.jli.dll_JLI_MemFree
jmp 0x4038eb
test rax, rax
je 0x4038f6
call fcn.00404db8
mov rcx, rbx
call fcn.00404d80
mov rdx, rbp
mov rcx, rbx
call fcn.00404de8
lea rcx, [0x00406628]
call fcn.00404650
lea rcx, str._JAVA_SPLASH_FILE
call fcn.00404650
lea rcx, str._JAVA_SPLASH_JAR
call fcn.00404650
mov rcx, qword [0x00409090]
call sub.jli.dll_JLI_MemFree
mov rcx, qword [0x00409088]
call sub.jli.dll_JLI_MemFree
mov rdx, qword [0x004090b0]
test rdx, rdx
jne 0x40397d
lea r8d, [rdx + 0x60]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x70], 0x10001
call qword [rsp + 0x68]
movsxd r11, dword [rsp + 0x88]
test r11d, r11d
jle 0x403976
mov rdx, r11
mov qword [0x004090b0], r11
jmp 0x40397d
mov rdx, qword [0x004090b0]
mov eax, dword [rsp + 0x450]
movdqu xmm0, xmmword [rsp + 0x60]
lea r8, [rsp + 0x70]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x40]
lea rcx, [0x00401f24]
movdqu xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x78], rax
call fcn.004046ac
mov rcx, qword [rsp + 0x400]
call fcn.004052a0
add rsp, 0x418
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret