Function at 0x14000c190
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push r12
push r13
push r15
mov eax, 0x7b88
call fcn.14002feb0
sub rsp, rax
mov rax, qword [0x14003dc18]
xor rax, rsp
mov qword [rsp + 0x7b70], rax
mov rax, qword [0x140045248]
xor r13d, r13d
movabs rdx, 0x6666666666666667
test rax, rax
jne 0x14000c1d5
mov r12d, r13d
jmp 0x14000c1f6
mov rcx, qword [0x140045250]
sub rcx, rax
mov rax, rdx
imul rcx
mov r12, rdx
sar r12, 4
mov rax, r12
shr rax, 0x3f
add r12, rax
movsxd rcx, r12d
mov eax, 0x10
mov rbx, 0xffffffffffffffff
mov qword [rsp + 0x7bc0], rdi
mul rcx
cmovo rax, rbx
mov rcx, rax
call fcn.14000e794
lea rcx, [rsp + 0x371]
xor edx, edx
mov r8d, 0x1ff
mov byte [rsp + 0x370], r13b
mov r15, rax
mov qword [rsp + 0x20], rax
call fcn.14001e4d0
lea rdx, [rsp + 0x370]
mov r8d, 0x200
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x14000c290
lea rdi, [0x140044020]
lea r8, [rsp + 0x370]
lea rdx, str.Fail_to_load_module_from__s
mov rcx, rdi
call fcn.14001c1e0
lea rdx, [0x14003afc8]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rdi
call fcn.14001d770
int3
lea rcx, [rsp + 0x370]
mov edx, 0x5c
call fcn.14001c700
lea rcx, [rsp + 0x571]
xor edx, edx
mov r8d, 0x1ff
mov byte [rsp + 0x570], r13b
mov byte [rax + 1], r13b
call fcn.14001e4d0
mov rdx, r13
nop
nop
nop
movzx eax, byte [rsp + rdx + 0x370]
add rdx, 1
test al, al
mov byte [rsp + rdx + 0x56f], al
jne 0x14000c2d0
lea rcx, [rsp + 0x570]
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryA]
lea rdx, [rsp + 0x260]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
mov edx, eax
jne 0x14000c32f
lea rax, str.Fail_to_get_the_directory_of_bJW.exe
lea rdx, [0x14003afc8]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.14001d770
int3
test edx, edx
movsxd rax, edx
js 0x14000c356
cmp byte [rsp + rax + 0x260], 0x5c
je 0x14000c34b
sub edx, 1
sub rax, 1
jns 0x14000c336
jmp 0x14000c356
movsxd rax, edx
mov byte [rsp + rax + 0x260], r13b
lea r9, str.server_jvm.dll
lea r8, [rsp + 0x260]
lea rdx, str._s_s
lea rcx, [rsp + 0x40]
call fcn.14001c1e0
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, rbx
mov r11, r13
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
test ecx, ecx
movsxd rax, ecx
jle 0x14000c3aa
cmp byte [rsp + r11 + 0x40], 0x2f
jne 0x14000c3a1
mov byte [rsp + r11 + 0x40], 0x5c
add r11, 1
cmp r11, rax
jl 0x14000c393
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x7b80], r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14000c3dd
lea rcx, str.server_jvm.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov r14, rax
jne 0x14000c4b1
jmp 0x14000c421
lea r8, [rsp + 0x40]
lea rdx, [0x140035ac8]
lea rcx, [rsp + 0x40]
call fcn.14001c1e0
xor eax, eax
lea rdi, [rsp + 0x770]
mov rcx, rbx
lea r8, [rsp + 0x40]
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
movzx eax, byte [r8 + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x14000c410
lea r9, str.client_jvm.dll
lea r8, [rsp + 0x260]
lea rdx, str._s_s
lea rcx, [rsp + 0x150]
call fcn.14001c1e0
xor eax, eax
lea rdi, [rsp + 0x150]
mov rcx, rbx
mov r11, r13
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
test ecx, ecx
movsxd rax, ecx
jle 0x14000c481
cmp byte [rsp + r11 + 0x150], 0x2f
jne 0x14000c478
mov byte [rsp + r11 + 0x150], 0x5c
add r11, 1
cmp r11, rax
jl 0x14000c464
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14000c5fd
lea rcx, str.client_jvm.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov r14, rax
je 0x14000c650
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryA]
test r12d, r12d
mov dword [rsp + 0x28], 0x10006
mov dword [rsp + 0x2c], r12d
mov qword [rsp + 0x30], r15
mov byte [rsp + 0x38], 1
je 0x14000c5a8
mov qword [rsp + 0x7bb0], rbp
mov qword [rsp + 0x7bb8], rsi
mov rbp, r15
lea rsi, [rsp + 0x1770]
movabs r15, 0x6666666666666667
mov rbx, r13
mov r12d, r12d
mov rdi, qword [0x140045248]
test rdi, rdi
je 0x14000c533
mov rcx, qword [0x140045250]
mov rax, r15
sub rcx, rdi
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r13, rdx
jb 0x14000c53f
call fcn.14001c610
mov rdi, qword [0x140045248]
cmp qword [rbx + rdi + 0x20], 0x10
jb 0x14000c54e
mov rcx, qword [rbx + rdi + 8]
jmp 0x14000c553
lea rcx, [rbx + rdi + 8]
mov rdx, rsi
nop
nop
nop
movzx eax, byte [rcx]
add rdx, 1
add rcx, 1
test al, al
mov byte [rdx - 1], al
jne 0x14000c560
mov qword [rbp], rsi
add rbp, 0x10
add r13, 1
add rsi, 0x200
add rbx, 0x28
sub r12, 1
jne 0x14000c504
mov r15, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x7bb8]
mov rbp, qword [rsp + 0x7bb0]
lea rdx, str.JNI_CreateJavaVM
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea r8, [rsp + 0x28]
lea rdx, [0x140043f90]
lea rcx, [0x140043f98]
call rax
mov rcx, r15
mov edi, eax
call fcn.14000e78c
test edi, edi
jns 0x14000c685
lea rax, str.Cannot_create_JVM
lea rdx, [0x14003afc8]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.14001d770
int3
lea r8, [rsp + 0x150]
lea rdx, [0x140035ac8]
lea rcx, [rsp + 0x150]
call fcn.14001c1e0
xor eax, eax
lea rdi, [rsp + 0x770]
mov rcx, rbx
lea rdx, [rsp + 0x150]
repne scasb al, byte [rdi]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x14000c640
lea rdi, [0x140044020]
lea r8, [rsp + 0x770]
lea rdx, str.Fail_to_load_library_from:__n_s
mov rcx, rdi
call fcn.14001c1e0
lea rdx, [0x14003afc8]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rdi
call fcn.14001d770
int3
mov r14, qword [rsp + 0x7b80]
mov rdi, qword [rsp + 0x7bc0]
mov rcx, qword [rsp + 0x7b70]
xor rcx, rsp
call fcn.14001c740
add rsp, 0x7b88
pop r15
pop r13
pop r12
pop rbx
ret