Function at 0x40aee0
Capabilities:
Get common file path
Set current directory

Disassembly:
push rbx
push rsi
push rdi
mov eax, 0x3ad0
call fcn.004394e0
sub rsp, rax
mov rbx, rcx
lea rcx, str.kernel32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.SetDllDirectoryA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov rdi, rax
jne 0x40af25
lea rcx, str._JNILaunch__WARNING:_SetDllDirectoryA_could_not_be_found
call fcn.0040becc
lea rcx, [rsp + 0x13b0]
mov rdx, rbx
mov byte [rsp + 0x13b0], 0
call fcn.004173d0
lea rdx, [0x0044c47c]
lea rcx, [rsp + 0x13b0]
call fcn.0040be2c
lea rcx, [rsp + 0x13b0]
call fcn.004010b0
test rax, rax
mov rbx, rax
jne 0x40af7f
lea rdx, [rsp + 0x13b0]
lea rcx, str._Extractor___SEVERE__Unable_to_open_directory___s__n
call fcn.0040becc
jmp 0x40b05f
mov rcx, rax
jmp 0x40b049
mov rsi, qword [rax]
lea rcx, str.msvcp
mov rdx, rsi
call fcn.0040c418
test al, al
jne 0x40afb4
lea rcx, str.vcruntime
mov rdx, rsi
call fcn.0040c418
test al, al
je 0x40b046
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x2740]
mov byte [rsp + 0x2740], 0
call fcn.004173d0
lea rcx, [rsp + 0x2740]
mov rdx, rsi
call fcn.0040be2c
lea rcx, [rsp + 0x2740]
call fcn.0040b5c0
lea rdx, [rsp + 0x2740]
test eax, eax
je 0x40b03a
lea rcx, str._Utils__Located_dependent_DLL___s__n
call fcn.0040becc
lea rcx, [rsp + 0x2740]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x40b046
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae24
lea rcx, str._Extractor___SEVERE__Unable_to_load_dependent_DLL._n
call fcn.0040becc
jmp 0x40b046
lea rcx, str._Utils__Located_dependent_DLL___s__does_NOT_exist_n
call fcn.0040becc
mov rcx, rbx
call fcn.004011f4
test rax, rax
jne 0x40af87
mov rcx, rbx
call fcn.004011a4
lea rdx, [rsp + 0x13b0]
lea rcx, str._JNILaunch__Bin_folder_is__s_n
call fcn.0040becc
mov ebx, 0x7d0
mov rcx, rbx
call fcn.00417100
mov ecx, ebx
mov rdx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea rcx, [rsp + 0x13b0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test rdi, rdi
je 0x40b0ab
lea rcx, [rsp + 0x13b0]
call rdi
lea rdx, str.server
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], 0
call fcn.004173d0
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040be2c
lea rcx, [rsp + 0x20]
call fcn.0040b5c0
test eax, eax
jne 0x40b114
lea rdx, str.client
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], al
call fcn.004173d0
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040be2c
lea rcx, [rsp + 0x20]
call fcn.0040b5c0
test eax, eax
je 0x40b125
lea rdx, [rsp + 0x20]
lea rcx, str._Utils__Located_DLL___s__n
call fcn.0040becc
lea r9, str.jvm.dll
lea r8, str.server
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040be94
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b1bf
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae24
lea r9, str.jvm.dll
lea r8, str.client
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040be94
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b1bf
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae24
lea rcx, str._Extractor___SEVERE__Unable_to_load_existing_JVM_dll._n
call fcn.0040becc
jmp 0x40b1d0
lea rdx, [rsp + 0x20]
lea rcx, str._Extractor__Successfully_loaded_DLL___s_._JVM_looks_good._n
call fcn.0040becc
test rdi, rdi
je 0x40b1d9
xor ecx, ecx
call rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov rax, rbx
add rsp, 0x3ad0
pop rdi
pop rsi
pop rbx
ret