Function at 0x180024554
Capabilities:
Get common file path
Read file on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x780
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov qword [rbp + 0x770], rbx
mov qword [rbp + 0x780], rsi
mov qword [rbp + 0x788], rdi
mov rax, qword [0x1801563c0]
xor rax, rbp
mov qword [rbp + 0x730], rax
mov r12, rdx
xor r14d, r14d
mov dword [rbp], r14d
lea rdx, [rbp + 0x520]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, r14d
je 0x180024a32
lea r8, [rbp + 0x520]
lea rdx, str._s_sbw.tmp
lea rcx, [rbp + 0x310]
call qword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
or r15, 0xffffffffffffffff
mov rcx, r15
lea rdi, [rbp + 0x310]
repne scasw ax, word [rdi]
not rcx
lea ebx, [rax + 1]
sub rcx, rbx
lea r8, [rbx + rcx]
mov qword [rbp + 0x18], r14
mov qword [rsp + 0x20], r15
lea r9, [rbp + 0x310]
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp + 0x18]
call fcn.1800d3abc
mov rsi, r14
mov dword [rsp + 0x20], ebx
lea r9d, [r14 + 0x40]
mov r8d, ebx
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp + 0x60]
call fcn.1800282c4
nop
cmp qword [rbp + 0xf8], r14
je 0x180024753
mov rcx, qword [rbp + 0x60]
movsxd rax, dword [rcx + 4]
test byte [rbp + rax + 0x70], 6
jne 0x1800246b2
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax + 0xa8]
mov rax, qword [rcx]
mov dword [rsp + 0x20], ebx
lea r9d, [r14 + 2]
xor r8d, r8d
lea rdx, [rbp + 0x38]
call qword [rax + 0x48]
movsxd rdx, dword [rbp + 0x40]
add rdx, qword [rbp + 0x38]
cmp rdx, qword [0x180109e28]
jne 0x1800246ae
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rbp + rcx + 0x60]
mov edx, dword [rcx + 0x10]
or edx, 2
mov eax, edx
or eax, 4
cmp qword [rcx + 0x48], r14
cmove edx, eax
xor r8d, r8d
call fcn.18002ab9c
jmp 0x1800246d1
mov rcx, qword [rbp + 0x60]
movsxd rax, dword [rcx + 4]
lea rcx, [rbp + rax + 0x60]
mov rax, qword [rcx + 0x48]
neg rax
sbb edx, edx
not edx
and edx, 4
xor r8d, r8d
call fcn.18002ab9c
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx + 0x70], 6
jne 0x180024706
mov rcx, qword [rbp + rcx + 0xa8]
mov rax, qword [rcx]
mov dword [rsp + 0x20], ebx
mov r9d, ebx
xor r8d, r8d
lea rdx, [rbp + 0x20]
call qword [rax + 0x48]
mov rdx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x20]
jmp 0x180024718
mov rax, qword [0x180109e28]
mov qword [rbp + 0x20], rax
mov rdx, r14
mov qword [rbp + 0x28], rdx
movsxd rsi, edx
add rsi, rax
lea rcx, [rbp + 0x70]
call fcn.180029534
cmp rax, r14
jne 0x180024753
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rbp + rcx + 0x60]
mov edx, dword [rcx + 0x10]
or edx, 2
mov eax, edx
or eax, 4
cmp qword [rcx + 0x48], r14
cmove edx, eax
xor r8d, r8d
call fcn.18002ab9c
lea rdx, [0x180118d04]
lea rcx, [rbp + 0x2a0]
call fcn.1800d23dc
mov rdi, rax
mov rcx, rsi
call fcn.1800d04fc
mov r13, rax
mov r9, rdi
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1800d3df8
mov rcx, rdi
call fcn.1800d26b4
lea rdx, [rbp]
lea rcx, [0x180163340]
call fcn.180008f88
nop
mov r9d, reloc.WS2_32.dll_inet_ntoa
lea r8d, [r9 - 7]
lea rdx, [rbp + 8]
lea rcx, [rbp]
call fcn.18000b144
nop
mov rdx, rax
lea rcx, [rbp]
call fcn.180003500
nop
mov rcx, qword [rbp + 8]
add rcx, 0xfffffffffffffff4
lea rax, [0x18015f758]
cmp rcx, rax
je 0x1800247f3
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
cmp eax, r14d
jg 0x1800247f3
mov rcx, qword [rbp + 8]
add rcx, 0xfffffffffffffff4
call fcn.1800d1434
lea rcx, [rbp]
call fcn.180003f8c
mov rbx, qword [rbp]
mov rcx, rbx
call fcn.1800d321c
cmp rbx, r14
jne 0x180024815
mov r9, r14
jmp 0x180024897
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [rax + 1]
cmp edx, 0x3fffffff
jle 0x18002482e
mov r9, r14
jmp 0x180024897
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x180024847
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800f12f0
sub rsp, rcx
lea rdi, [rsp + 0x40]
cmp rdi, r14
je 0x180024894
mov byte [rdi], r14b
lea eax, [rdx + rdx]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, r15d
mov r8, rbx
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb r9, r9
and r9, rdi
jmp 0x180024897
mov r9, r14
xor eax, eax
mov rcx, r15
mov rdi, r9
repne scasb al, byte [rdi]
not rcx
lea rdx, [rcx - 1]
lea r8, [rbp + 0x190]
mov rcx, r9
call fcn.18000b5f8
lea r8, [rbp + 0x190]
mov edx, esi
mov rcx, r13
call fcn.18000b6a8
mov qword [rbp + 0x180], 7
mov qword [rbp + 0x178], r14
mov word [rbp + 0x168], r14w
mov r8, rsi
mov rdx, r13
lea rcx, [rbp + 0x160]
call fcn.18002940c
nop
mov rcx, r13
call fcn.1800d1434
lea rdx, [rbp + 0x168]
cmp qword [rbp + 0x180], 8
cmovae rdx, qword [rbp + 0x168]
lea rcx, [rbp + 0x10]
call fcn.1800041c0
nop
mov rdi, qword [rbp + 0x10]
lea rsi, [rdi - 0xc]
cmp dword [rsi], r14d
jl 0x180024939
mov qword [r12], rdi
lock add dword [rsi], 1
mov rbx, qword [rbp]
jmp 0x18002495b
mov rax, qword [0x18015f768]
mov qword [r12], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rdi
mov edx, eax
mov rcx, r12
call fcn.180003e28
nop
lea rdi, [0x18015f758]
cmp rsi, rdi
je 0x180024988
mov eax, r15d
lock xadd dword [rsi], eax
add eax, r15d
cmp eax, r14d
jg 0x180024984
mov rcx, rsi
call fcn.1800d1434
mov rbx, qword [rbp]
jmp 0x180024988
mov rbx, qword [rbp]
cmp qword [rbp + 0x180], 8
jb 0x18002499e
mov rcx, qword [rbp + 0x168]
call fcn.1800d1290
mov qword [rbp + 0x180], 7
mov qword [rbp + 0x178], r14
mov word [rbp + 0x168], r14w
lea rcx, [rbx - 0xc]
cmp rcx, rdi
je 0x1800249d6
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
cmp eax, r14d
jg 0x1800249d6
call fcn.1800d1434
nop
lea rax, [rbp + 0x100]
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x60], rax
lea rcx, [rbp + 0x70]
call fcn.1800284e0
nop
mov rcx, qword [rbp + 0x60]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rdx + 0x60], rax
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x100], rax
lea rcx, [rbp + 0x100]
call fcn.1800d0668
mov rax, r12
jmp 0x180024a44
lea rdx, [0x18010d528]
mov rcx, r12
call fcn.1800041c0
mov rax, r12
mov rcx, qword [rbp + 0x730]
xor rcx, rbp
call fcn.1800d12b0
mov rbx, qword [rbp + 0x770]
mov rsi, qword [rbp + 0x780]
mov rdi, qword [rbp + 0x788]
lea rsp, [rbp + 0x740]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret