Function at 0x140023b20
Capabilities:
Get common file path

Disassembly:
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d8]
sub rsp, 0x4d8
xor esi, esi
mov ebx, esi
mov dword [rbp + 0x420], ebx
mov eax, dword [0x1402e2578]
mov dword [rbp + 0x428], eax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rsi
movups xmmword [rbp + 0x20], xmm0
movdqa xmm1, xmmword [0x140181580]
movdqu xmmword [rbp + 0x30], xmm1
mov word [rbp + 0x20], si
lea rax, [rbp + 0x2c0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rsi + 0x1c]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea r15, [rsi - 1]
test eax, eax
js 0x140023c77
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
lea rax, [rbp + 0x2c0]
mov r8, r15
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140023bc0
lea rdx, [rbp + 0x2c0]
lea rcx, [rbp - 0x50]
call fcn.140020ef0
nop
lea rax, [rbp - 0x50]
cmp qword [rbp - 0x38], 0x10
cmovae rax, qword [rbp - 0x50]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0x48], rax
xor r8d, r8d
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.14002aab0
mov ebx, 0x4000
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rbp - 0x78]
movups xmmword [rbp + 0x30], xmm1
movdqa xmm0, xmmword [0x140181580]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rsp + 0x78], si
lea rcx, [rsp + 0x78]
call fcn.140028d40
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x140023c77
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023c72
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140023c72
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401582b8
lea rax, str.logs
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], 4
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x110]
call fcn.14002aab0
bts ebx, 0xd
lea rax, str.Roblox
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], 6
xor r8d, r8d
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0xf0]
call fcn.14002aab0
bts ebx, 0xc
mov dword [rbp + 0x420], ebx
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0xd0]
call fcn.1400285d0
bts ebx, 0xb
mov dword [rbp + 0x420], ebx
lea rdx, [rbp + 0xf0]
lea rcx, [rbp + 0xd0]
call fcn.1400218e0
lea r8, [rbp + 0x110]
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0x130]
call fcn.140021f20
nop
btr ebx, 0xb
mov dword [rbp + 0x420], ebx
lea rcx, [rbp + 0xd0]
call fcn.140028d40
nop
lea rcx, [rbp + 0xf0]
call fcn.140028d40
nop
lea rcx, [rbp + 0x110]
call fcn.140028d40
lea rdx, [rbp + 0x130]
lea rcx, [rsp + 0x50]
call fcn.140022bf0
nop
mov rdi, qword [rsp + 0x58]
test rdi, rdi
je 0x140023d74
lock inc dword [rdi + 8]
mov rdi, qword [rsp + 0x58]
mov ebx, dword [rbp + 0x420]
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp - 0x60], xmm0
test rdi, rdi
je 0x140023d92
lock inc dword [rdi + 8]
mov rdi, qword [rsp + 0x58]
mov ebx, dword [rbp + 0x420]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xb0], xmm1
test rdi, rdi
je 0x140023dd8
mov eax, r15d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140023dcd
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, r15d
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x140023dcd
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov ebx, dword [rbp + 0x420]
mov rdi, qword [rsp + 0x58]
mov r14, qword [rbp - 0x60]
mov r13, qword [rsp + 0x68]
test r14, r14
je 0x1400240b4
lea r12, str.Player
lea rdi, str..log
lea rdx, [rbp - 0x30]
mov rcx, r14
call fcn.1400226b0
mov rax, qword [rbp - 0x30]
mov edx, dword [rbp - 0x28]
test edx, edx
je 0x140023e1e
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x1400246ba
cmp eax, 2
jne 0x140023fe2
mov qword [rbp + 0x70], rdi
mov qword [rbp + 0x78], 4
xor r8d, r8d
lea rdx, [rbp + 0x70]
lea rcx, [rbp]
call fcn.14002aab0
or ebx, 0x10
or ebx, 1
mov dword [rbp + 0x420], ebx
lea rdx, [rbp + 0x2a0]
lea rcx, [r14 + 0x20]
call fcn.140021de0
nop
or ebx, 2
mov dword [rbp + 0x420], ebx
lea rcx, [rbp]
cmp qword [rbp + 0x18], 8
cmovae rcx, qword [rbp]
mov qword [rbp + 0x80], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rbp + 0x88], rcx
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0xc0], xmm0
lea rdx, [rbp + 0xc0]
mov rcx, rax
call fcn.140021be0
test eax, eax
jne 0x140023fe2
lea rcx, [r14 + 0x20]
cmp qword [r14 + 0x38], 8
jb 0x140023ebe
mov rcx, qword [r14 + 0x20]
mov rax, qword [r14 + 0x30]
lea r11, [rcx + rax*2]
mov r10, r11
mov rdx, r11
call fcn.1400217b0
cmp rax, r11
je 0x140023f0e
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x140023ee5
cmp cx, 0x2f
jne 0x140023eee
add rax, 2
cmp rax, r11
jne 0x140023ed6
cmp rax, r11
je 0x140023f0e
lea rdx, [r10 - 2]
movzx ecx, word [rdx]
cmp cx, 0x5c
je 0x140023f0e
cmp cx, 0x2f
je 0x140023f0e
mov r10, rdx
cmp rax, rdx
jne 0x140023ef3
sub r11, r10
sar r11, 1
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], rsi
mov r8, r11
mov rdx, r10
lea rcx, [rbp - 0x20]
call fcn.140029510
or ebx, 0x380
or ebx, 4
mov dword [rbp + 0x420], ebx
lea rdx, [rbp + 0x280]
lea rcx, [rbp - 0x20]
call fcn.140021ae0
mov rdi, rax
or ebx, 8
mov dword [rbp + 0x420], ebx
mov rax, qword [rax + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x140023f6b
mov rdi, qword [rdi]
cmp rax, 6
jb 0x140023fe2
lea rsi, [rax + rdi]
lea r8, [rsi - 5]
sub r8, rdi
mov edx, 0x50
mov rcx, rdi
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x140023fe2
nop
xor r8d, r8d
mov ecx, r8d
nop word [rax + rax]
movzx edx, byte [rax + rcx]
inc rcx
cmp dl, byte [r12 + rcx - 1]
jne 0x140023fb9
cmp rcx, 6
jne 0x140023fa0
mov ecx, r8d
jmp 0x140023fbe
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x140024070
inc rax
lea r8, [rsi - 5]
sub r8, rax
mov edx, 0x50
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x140023f90
xor dil, dil
test bl, 8
je 0x140024000
and ebx, 0xfffffff7
mov dword [rbp + 0x420], ebx
lea rcx, [rbp + 0x280]
call fcn.140020e70
nop
test bl, 4
je 0x140024018
and ebx, 0xfffffffb
mov dword [rbp + 0x420], ebx
lea rcx, [rbp - 0x20]
call fcn.140028d40
nop
test bl, 2
je 0x140024033
and ebx, 0xfffffffd
mov dword [rbp + 0x420], ebx
lea rcx, [rbp + 0x2a0]
call fcn.140028d40
nop
test bl, 1
je 0x14002404a
and ebx, 0xfffffffe
mov dword [rbp + 0x420], ebx
lea rcx, [rbp]
call fcn.140028d40
test dil, dil
je 0x140024097
lea r8, [r14 + 0x20]
cmp r13, qword [rsp + 0x70]
je 0x140024085
mov rdx, r8
mov rcx, r13
call fcn.1400285d0
add r13, 0x20
mov qword [rsp + 0x68], r13
jmp 0x140024097
sub rax, rdi
cmp rax, 0xffffffffffffffff
je 0x140023fe2
mov dil, 1
jmp 0x140023fe5
mov rdx, r13
lea rcx, [rsp + 0x60]
call fcn.14002a680
mov r13, qword [rsp + 0x68]
lea rcx, [rbp - 0x60]
call fcn.140022d40
mov r14, qword [rbp - 0x60]
xor esi, esi
test r14, r14
jne 0x140023df1
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x1400240f7
mov eax, r15d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400240ed
mov rbx, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400240ed
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
test rdi, rdi
je 0x14002412c
mov eax, r15d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140024127
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, r15d
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x140024127
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov r13, qword [rsp + 0x68]
mov r8, r13
mov rbx, qword [rsp + 0x60]
sub r8, rbx
sar r8, 5
movzx r9d, byte [rbp + 0x420]
mov rdx, r13
mov rcx, rbx
call fcn.14002a130
mov rdx, rbx
lea rcx, [rbp + 0x90]
call fcn.1400285d0
nop
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], 8
cmovae rdx, qword [rbp + 0x90]
lea rcx, [rbp + 0x150]
call fcn.140029dd0
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x150], rax
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x14c], edx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x30], 0
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x150]
add rcx, rax
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x150]
call fcn.14002a330
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
je 0x140024307
nop dword [rax + rax]
lea rdi, [rsp + 0x30]
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x48]
cmp r12, 0x10
cmovae rdi, r15
mov r14, qword [rsp + 0x40]
cmp r14, 0x10
jb 0x1400242b7
lea rsi, [rdi + r14]
lea r8, [rsi - 0xf]
sub r8, rdi
mov edx, 0x69
mov rcx, rdi
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
je 0x1400242b7
nop dword [rax]
nop word [rax + rax]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, str.initialize_view_
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400242aa
inc rbx
lea r8, [rsi - 0xf]
sub r8, rbx
mov edx, 0x69
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
jne 0x140024270
jmp 0x1400242b7
sub rbx, rdi
cmp rbx, 0xffffffffffffffff
jne 0x14002434e
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x150]
add rcx, rax
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x150]
call fcn.14002a330
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
jne 0x140024220
xor esi, esi
lea r15, [rsi - 1]
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x1400245a8
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400245a3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400245a3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rdi, [rsp + 0x30]
cmp r12, 0x10
cmovae rdi, r15
lea rsi, [r14 + rdi]
lea r8, [rsi - 0xf]
sub r8, rdi
mov edx, 0x69
mov rcx, rdi
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
je 0x1400243bc
nop dword [rax + rax]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, str.initialize_view_
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14002449f
inc rbx
lea r8, [rsi - 0xf]
sub r8, rbx
mov edx, 0x69
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
test rax, rax
jne 0x140024380
mov rbx, 0xffffffffffffffff
add rbx, 0x11
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
cmp r14, rbx
jb 0x1400246b4
sub r14, rbx
mov r8, 0xffffffffffffffff
cmp r14, r8
cmovb r8, r14
lea rdx, [rsp + 0x30]
cmp r12, 0x10
cmovae rdx, r15
add rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.140020ef0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x140024448
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024443
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024513
call fcn.1401582b8
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rbp - 0x78]
movups xmmword [rsp + 0x40], xmm1
lea rbx, [rsp + 0x30]
movq rsi, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq r14, xmm0
cmp r14, 0x10
cmovae rbx, rsi
movq rdi, xmm1
test rdi, rdi
je 0x1400244a7
mov r8, rdi
mov edx, reloc.WLDAP32.dll_Ordinal_41
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x1400244a7
sub rax, rbx
jmp 0x1400244ae
sub rbx, rdi
jmp 0x1400243c3
mov rax, 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
cmp rdi, rax
cmovb rax, rdi
lea rdx, [rsp + 0x30]
cmp r14, 0x10
cmovae rdx, rsi
mov r8, rax
lea rcx, [rsp + 0x78]
call fcn.140020ef0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x14002451f
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002451a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002451a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401582b8
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rbp - 0x78]
movups xmmword [rsp + 0x40], xmm1
lea rcx, [rsp + 0x30]
movq rdx, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 0x10
cmovae rcx, rdx
xor edx, edx
lea r8d, [rdx + 0x10]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoull]
xor esi, esi
mov qword [rbp + 0x430], rsi
lea rbx, [rax + 0x10]
mov r8d, dword [rbp + 0x428]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rcx, rax
mov qword [rsp + 0x20], rsi
lea r9d, [rsi + 8]
lea r8, [rbp + 0x430]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov r15, qword [rbp + 0x430]
jmp 0x140024307
call fcn.1401582b8
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x30], 0
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x150], rax
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x14c], edx
lea rcx, [rbp + 0x160]
call fcn.140027fa0
lea rcx, [rbp + 0x168]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x200]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x90]
call fcn.140028d40
nop
lea rcx, [rbp + 0x130]
call fcn.140028d40
nop
lea rcx, [rbp + 0x20]
call fcn.140028d40
nop
mov rdi, qword [rsp + 0x60]
test rdi, rdi
je 0x14002469d
mov rbx, rdi
cmp rdi, r13
je 0x140024661
nop word [rax + rax]
mov rcx, rbx
call fcn.140028d40
add rbx, 0x20
cmp rbx, r13
jne 0x140024650
mov rdx, qword [rsp + 0x70]
sub rdx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rdi
cmp rdx, 0x1000
jb 0x140024695
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140024695
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.1401582b8
mov rax, r15
add rsp, 0x4d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140028f60
nop
lea r8, [r14 + 0x20]
lea rcx, str.directory_entry::status
call fcn.140022630
int3