Function at 0x40cc60
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x1b68
call fcn.004573e0
sub rsp, rax
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x1b78], rbx
mov qword [rsp + 0x1b80], rbp
mov qword [rsp + 0x1b88], rsi
mov qword [rsp + 0x1b60], rdi
mov qword [rsp + 0x1b58], r12
mov qword [rsp + 0x1b50], r13
mov qword [rsp + 0x1b48], r14
mov rax, qword [0x00472618]
xor rax, rsp
mov qword [rsp + 0x1b30], rax
mov rsi, rcx
mov byte [rsp + 0x730], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x731]
call fcn.00435390
lea rbx, [rsi + 0x178]
mov rdx, rbx
lea rcx, [rsp + 0x730]
sub rcx, rbx
nop
nop
nop
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
add rdx, 1
test al, al
jne 0x40cd00
lea rdi, [rsp + 0x730]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov eax, dword [0x00459dec]
mov dword [rdi - 1], eax
lea r12, [rsi + 0xb90]
xor r14d, r14d
mov qword [r12], r14
lea r13, [rsi + 0xb98]
mov qword [r13], r14
mov ecx, 0x200
call fcn.00417794
mov qword [rsp + 0x40], rax
test rax, rax
je 0x40cd64
mov rcx, rax
call fcn.00404530
mov rdi, rax
jmp 0x40cd67
mov rdi, r14
lea rdx, [rsi + 0x98c]
mov rcx, rdi
call fcn.00404380
lea rdx, [rsi + 0x78c]
mov rcx, rdi
call fcn.004043a0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x531]
call fcn.00435390
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x931]
call fcn.00435390
xor edx, edx
mov qword [rsp + 0x2f1], rdx
mov qword [rsp + 0x2f9], rdx
mov qword [rsp + 0x301], rdx
mov dword [rsp + 0x309], edx
mov word [rsp + 0x30d], dx
mov byte [rsp + 0x30f], dl
xor eax, eax
mov qword [rsp + 0x311], rax
mov qword [rsp + 0x319], rax
mov qword [rsp + 0x321], rax
mov dword [rsp + 0x329], eax
mov word [rsp + 0x32d], ax
mov byte [rsp + 0x32f], al
mov dword [rsp + 0x48], 0x10006
mov dword [rsp + 0x4c], 4
lea rcx, [rsp + 0x530]
lea r9, [0x00403000]
mov rax, qword [r9 + 0x56dd8]
mov qword [rcx], rax
mov rax, qword [r9 + 0x56de0]
mov qword [rcx + 8], rax
movzx eax, word [r9 + 0x56de8]
mov word [rcx + 0x10], ax
movzx eax, byte [r9 + 0x56dea]
mov byte [rcx + 0x12], al
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x730]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40ce80
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx edx, word [0x00459bf0]
mov word [rdi - 1], dx
lea rdi, [rsp + 0x530]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea r8, [rsp + 0x730]
xor ecx, ecx
nop
nop
movzx eax, byte [r8 + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40ced0
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.obc.jar]
mov qword [rdi - 1], rax
movzx eax, byte [0x00459dd0]
mov byte [rdi + 7], al
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov word [rdi - 1], dx
lea rdi, [rsp + 0x530]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea r8, [rsp + 0x730]
xor ecx, ecx
nop
nop
movzx eax, byte [r8 + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40cf40
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.obc_lib.jar]
mov qword [rdi - 1], rax
mov eax, dword [0x00459dc0]
mov dword [rdi + 7], eax
movzx eax, byte [0x00459dc4]
mov byte [rdi + 0xb], al
lea rdi, [rsp + 0x530]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov word [rdi - 1], dx
lea rcx, [rsp + 0x930]
mov rax, qword [r9 + 0x56da0]
mov qword [rcx], rax
mov rax, qword [r9 + 0x56da8]
mov qword [rcx + 8], rax
mov eax, dword [r9 + 0x56db0]
mov dword [rcx + 0x10], eax
movzx eax, byte [r9 + 0x56db4]
mov byte [rcx + 0x14], al
lea rdi, [rsp + 0x930]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x730]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40cff0
lea rcx, [rsp + 0x2f0]
mov eax, dword [r9 + 0x56d94]
mov dword [rcx], eax
movzx eax, byte [r9 + 0x56d98]
mov byte [rcx + 4], al
lea rdi, [rsp + 0x2f0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, byte [rcx + rsi + 0x98c]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40d040
lea rdi, [rsp + 0x2f0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx edx, word [0x00459d90]
mov word [rdi - 1], dx
lea rcx, [rsp + 0x310]
mov eax, dword [r9 + 0x56d88]
mov dword [rcx], eax
movzx eax, byte [r9 + 0x56d8c]
mov byte [rcx + 4], al
lea rdi, [rsp + 0x310]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, byte [rsi + rcx + 0x78c]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40d0b0
lea rdi, [rsp + 0x310]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov word [rdi - 1], dx
lea rax, [rsp + 0x530]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x930]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x2f0]
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x310]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x58], 1
mov byte [rsp + 0x330], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x331]
call fcn.00435390
mov rdx, rbx
lea rsi, [rsp + 0x330]
sub rsi, rbx
movzx eax, byte [rdx]
mov byte [rsi + rdx], al
add rdx, 1
test al, al
jne 0x40d152
lea rdi, [rsp + 0x330]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.jvm_bin]
mov qword [rdi - 1], rax
lea rcx, str.PATH
call fcn.004355d0
mov r11, rax
mov rdx, r14
movzx ecx, byte [rsp + rdx + 0x330]
mov byte [rsp + rdx + 0xb30], cl
add rdx, 1
test cl, cl
jne 0x40d190
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x00459bf0]
mov word [rdi - 1], ax
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
movzx eax, byte [r11 + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40d1e0
lea rdx, [rsp + 0xb30]
lea rcx, str.PATH
call fcn.0043a530
lea rdi, [rsp + 0x330]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.client]
mov qword [rdi - 1], rax
lea rcx, str.PATH
call fcn.004355d0
mov r11, rax
mov rdx, r14
nop
nop
nop
movzx ecx, byte [rsp + rdx + 0x330]
mov byte [rsp + rdx + 0xb30], cl
add rdx, 1
test cl, cl
jne 0x40d240
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x00459bf0]
mov word [rdi - 1], ax
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
movzx eax, byte [r11 + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x40d290
lea rdx, [rsp + 0xb30]
lea rcx, str.PATH
call fcn.0043a530
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, 0xffffffffffffffff
jne 0x40d3b5
nop
nop
nop
movzx eax, byte [rbx]
mov byte [rsi + rbx], al
add rbx, 1
test al, al
jne 0x40d2e0
lea rdi, [rsp + 0x330]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.jvm_bin]
mov qword [rdi - 1], rax
lea rdi, [rsp + 0x330]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str._server]
mov qword [rdi - 1], rax
lea rcx, str.PATH
call fcn.004355d0
mov r11, rax
mov rdx, r14
nop
movzx ecx, byte [rsp + rdx + 0x330]
mov byte [rsp + rdx + 0xb30], cl
add rdx, 1
test cl, cl
jne 0x40d340
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x00459bf0]
mov word [rdi - 1], ax
lea rdi, [rsp + 0xb30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor edx, edx
nop
nop
movzx eax, byte [r11 + rdx]
mov byte [rdi + rdx - 1], al
add rdx, 1
test al, al
jne 0x40d390
lea rdx, [rsp + 0xb30]
lea rcx, str.PATH
call fcn.0043a530
lea rdi, [rsp + 0x330]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.jvm.dll]
mov qword [rdi - 1], rax
movzx eax, byte [0x00459d70]
mov byte [rdi + 7], al
lea rcx, [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
jne 0x40d425
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
mov r9d, 0x400
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
jmp 0x40d44b
lea rdx, str.JNI_CreateJavaVM
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea r8, [rsp + 0x48]
mov rdx, r13
mov rcx, r12
call rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rsp + 0x1b30]
xor rcx, rsp
call fcn.00434a90
mov rbx, qword [rsp + 0x1b78]
mov rbp, qword [rsp + 0x1b80]
mov rsi, qword [rsp + 0x1b88]
mov rdi, qword [rsp + 0x1b60]
mov r12, qword [rsp + 0x1b58]
mov r13, qword [rsp + 0x1b50]
mov r14, qword [rsp + 0x1b48]
add rsp, 0x1b68
ret