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

Disassembly:
push rbx
push rsi
push rdi
mov eax, 0x3ad0
call fcn.004395f0
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 0x40b025
lea rcx, str._JNILaunch__WARNING:_SetDllDirectoryA_could_not_be_found
call fcn.0040bfd4
lea rcx, [rsp + 0x13b0]
mov rdx, rbx
mov byte [rsp + 0x13b0], 0
call fcn.004174e0
lea rdx, [0x0044c494]
lea rcx, [rsp + 0x13b0]
call fcn.0040bf34
lea rcx, [rsp + 0x13b0]
call fcn.004010b0
test rax, rax
mov rbx, rax
jne 0x40b07f
lea rdx, [rsp + 0x13b0]
lea rcx, str._Extractor___SEVERE__Unable_to_open_directory___s__n
call fcn.0040bfd4
jmp 0x40b15f
mov rcx, rax
jmp 0x40b149
mov rsi, qword [rax]
lea rcx, str.msvcp
mov rdx, rsi
call fcn.0040c520
test al, al
jne 0x40b0b4
lea rcx, str.vcruntime
mov rdx, rsi
call fcn.0040c520
test al, al
je 0x40b146
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x2740]
mov byte [rsp + 0x2740], 0
call fcn.004174e0
lea rcx, [rsp + 0x2740]
mov rdx, rsi
call fcn.0040bf34
lea rcx, [rsp + 0x2740]
call fcn.0040b6c0
lea rdx, [rsp + 0x2740]
test eax, eax
je 0x40b13a
lea rcx, str._Utils__Located_dependent_DLL___s__n
call fcn.0040bfd4
lea rcx, [rsp + 0x2740]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x40b146
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040af24
lea rcx, str._Extractor___SEVERE__Unable_to_load_dependent_DLL._n
call fcn.0040bfd4
jmp 0x40b146
lea rcx, str._Utils__Located_dependent_DLL___s__does_NOT_exist_n
call fcn.0040bfd4
mov rcx, rbx
call fcn.004011f4
test rax, rax
jne 0x40b087
mov rcx, rbx
call fcn.004011a4
lea rdx, [rsp + 0x13b0]
lea rcx, str._JNILaunch__Bin_folder_is__s_n
call fcn.0040bfd4
mov ebx, 0x7d0
mov rcx, rbx
call fcn.00417210
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 0x40b1ab
lea rcx, [rsp + 0x13b0]
call rdi
lea rdx, str.server
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], 0
call fcn.004174e0
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040bf34
lea rcx, [rsp + 0x20]
call fcn.0040b6c0
test eax, eax
jne 0x40b214
lea rdx, str.client
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], al
call fcn.004174e0
lea rdx, str.jvm.dll
lea rcx, [rsp + 0x20]
call fcn.0040bf34
lea rcx, [rsp + 0x20]
call fcn.0040b6c0
test eax, eax
je 0x40b225
lea rdx, [rsp + 0x20]
lea rcx, str._Utils__Located_DLL___s__n
call fcn.0040bfd4
lea r9, str.jvm.dll
lea r8, str.server
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040bf9c
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b2bf
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040af24
lea r9, str.jvm.dll
lea r8, str.client
lea rdx, [rsp + 0x13b0]
lea rcx, [rsp + 0x20]
call fcn.0040bf9c
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x40b2bf
lea rdx, str.LoadLibrary
lea rcx, str.Utils
call fcn.0040af24
lea rcx, str._Extractor___SEVERE__Unable_to_load_existing_JVM_dll._n
call fcn.0040bfd4
jmp 0x40b2d0
lea rdx, [rsp + 0x20]
lea rcx, str._Extractor__Successfully_loaded_DLL___s_._JVM_looks_good._n
call fcn.0040bfd4
test rdi, rdi
je 0x40b2d9
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