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

Disassembly:
push rbx
push rsi
push rdi
mov eax, 0x3ad0
call fcn.00439550
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 0x40af99
lea rcx, str._JNILaunch__WARNING:_SetDllDirectoryA_could_not_be_found
call fcn.0040bf40
lea rcx, [rsp + 0x13b0]
mov rdx, rbx
mov byte [rsp + 0x13b0], 0
call fcn.00417450
lea rdx, [0x0044c494]
lea rcx, [rsp + 0x13b0]
call fcn.0040bea0
lea rcx, [rsp + 0x13b0]
call fcn.004010b0
test rax, rax
mov rbx, rax
jne 0x40aff3
lea rdx, [rsp + 0x13b0]
lea rcx, str._Extractor___SEVERE__Unable_to_open_directory___s__n
call fcn.0040bf40
jmp 0x40b0d3
mov rcx, rax
jmp 0x40b0bd
mov rsi, qword [rax]
lea rcx, str.msvcp
mov rdx, rsi
call fcn.0040c48c
test al, al
jne 0x40b028
lea rcx, str.vcruntime
mov rdx, rsi
call fcn.0040c48c
test al, al
je 0x40b0ba
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x2740]
mov byte [rsp + 0x2740], 0
call fcn.00417450
lea rcx, [rsp + 0x2740]
mov rdx, rsi
call fcn.0040bea0
lea rcx, [rsp + 0x2740]
call fcn.0040b634
lea rdx, [rsp + 0x2740]
test eax, eax
je 0x40b0ae
lea rcx, str._Utils__Located_dependent_DLL___s__n
call fcn.0040bf40
lea rcx, [rsp + 0x2740]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x40b0ba
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae98
lea rcx, str._Extractor___SEVERE__Unable_to_load_dependent_DLL._n
call fcn.0040bf40
jmp 0x40b0ba
lea rcx, str._Utils__Located_dependent_DLL___s__does_NOT_exist_n
call fcn.0040bf40
mov rcx, rbx
call fcn.004011f4
test rax, rax
jne 0x40affb
mov rcx, rbx
call fcn.004011a4
lea rdx, [rsp + 0x13b0]
lea rcx, str._JNILaunch__Bin_folder_is__s_n
call fcn.0040bf40
mov ebx, 0x7d0
mov rcx, rbx
call fcn.00417180
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 0x40b11f
lea rcx, [rsp + 0x13b0]
call rdi
lea rdx, str.server
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], 0
call fcn.00417450
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040bea0
lea rcx, [rsp + 0x20]
call fcn.0040b634
test eax, eax
jne 0x40b188
lea rdx, str.client
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], al
call fcn.00417450
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040bea0
lea rcx, [rsp + 0x20]
call fcn.0040b634
test eax, eax
je 0x40b199
lea rdx, [rsp + 0x20]
lea rcx, str._Utils__Located_DLL___s__n
call fcn.0040bf40
lea r9, str.jvm.dll
lea r8, str.server
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040bf08
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b233
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae98
lea r9, str.jvm.dll
lea r8, str.client
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040bf08
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b233
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040ae98
lea rcx, str._Extractor___SEVERE__Unable_to_load_existing_JVM_dll._n
call fcn.0040bf40
jmp 0x40b244
lea rdx, [rsp + 0x20]
lea rcx, str._Extractor__Successfully_loaded_DLL___s_._JVM_looks_good._n
call fcn.0040bf40
test rdi, rdi
je 0x40b24d
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