Function at 0x18000bac0
Capabilities:
Create directory
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2a0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x180064138]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r15, rcx
xor eax, eax
mov dword [rsp + 0x50], eax
mov rcx, qword [rcx + 0x10]
cmp dword [rcx - 0x10], eax
je 0x18000bf55
test edx, edx
jne 0x18000bb27
mov rax, qword [r15 + 0x18]
cmp dword [rax - 0x10], edx
je 0x18000bf55
call fcn.180007b50
mov rcx, rax
test rax, rax
je 0x18000bfec
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, [0x180047a08]
mov rsi, 0xffffffffffffffff
cmp rdx, 0x10000
jae 0x18000bb6d
movzx edx, dx
lea rcx, [rsp + 0x40]
call fcn.18000cc80
jmp 0x18000bb88
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x18000bb70
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.18000fcf0
nop
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
call fcn.180007b50
mov rcx, rax
test rax, rax
je 0x18000bff7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x50], 1
movzx eax, word [rsp + 0x7c]
movzx ecx, word [rsp + 0x7a]
movzx edx, word [rsp + 0x78]
movzx r10d, word [rsp + 0x76]
movzx r9d, word [rsp + 0x72]
movzx r8d, word [rsp + 0x70]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], r10d
lea rdx, str._04u__02u__02u__02u:_02u:_02u
lea rcx, [rsp + 0x58]
call fcn.18000c180
mov rbx, qword [rsp + 0x58]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.18000b940
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18000bc3a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rdi, [0x180047a0c]
mov rax, rsi
inc rax
cmp word [rdi + rax*2], 0
jne 0x18000bc44
mov r12, rdi
mov rbx, qword [rsp + 0x40]
sub r12, rbx
sar r12, 1
mov r13d, dword [rbx - 0x10]
test eax, eax
js 0x18000c002
movsxd rdx, eax
mov rcx, rdi
call fcn.180033654
mov rdx, rax
mov qword [rsp + 0x60], rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r13d
jl 0x18000c00d
lea r14d, [rax + r13]
test r14d, r14d
js 0x18000c018
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x18000bcc1
mov edx, r14d
lea rcx, [rsp + 0x40]
call fcn.18000fc40
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x60]
cmp r12, r13
ja 0x18000bcca
lea rdi, [rbx + r12*2]
movsxd rdx, edx
add rdx, rdx
lea rcx, [rbx + r13*2]
mov r9, rdx
mov r8, rdi
call fcn.18000fed0
cmp r14d, dword [rbx - 0xc]
jg 0x18000bfe1
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor r13d, r13d
mov word [rbx + rax*2], r13w
lea r14, [r15 + 0x18]
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.18000c810
lea rdi, [r15 + 0x20]
mov r9, qword [rdi]
cmp dword [r9 - 0x10], r13d
jne 0x18000bfb0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x80]
call fcn.180027560
mov r12d, 1
mov r9d, r12d
lea r8d, [r13 + 0x1a]
lea rdx, [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x18000bd6d
call fcn.180007b50
mov rcx, rax
test rax, rax
je 0x18000c023
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
jmp 0x18000bf09
lea rdx, str.LudashiMyLdsLogger
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
xor r8d, r8d
lea rdx, [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
call fcn.180007b50
mov rcx, rax
test rax, rax
je 0x18000c02e
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
lea rax, [rbp - 0x80]
cmp rax, 0x10000
lea rax, [rbp - 0x80]
jae 0x18000bdd4
movzx edx, ax
lea rcx, [rsp + 0x48]
call fcn.18000cc80
mov rbx, qword [rsp + 0x48]
jmp 0x18000bf09
mov rdi, rsi
nop word [rax + rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x18000bde0
test edi, edi
jne 0x18000be48
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x18000bf05
cmp dword [rdx + 0x10], 0
jge 0x18000be1c
cmp dword [rbx - 0xc], 0
jl 0x18000c039
mov dword [rbx - 0x10], r13d
mov word [rbx], r13w
jmp 0x18000bf05
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18000be31
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
jmp 0x18000bf05
mov r13d, dword [rbx - 0x10]
lea r14, [rbp - 0x80]
sub r14, rbx
sar r14, 1
test edi, edi
js 0x18000c044
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r12d
jge 0x18000be7d
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.18000fc40
mov rbx, qword [rsp + 0x48]
movsxd rax, edi
cmp r14, r13
ja 0x18000bed4
lea rdx, [rbx + r14*2]
lea r14, [rax + rax]
test r14, r14
je 0x18000beee
test rdx, rdx
jne 0x18000bea9
call fcn.18002ce14
mov dword [rax], 0x16
call fcn.180029c34
jmp 0x18000beee
movsxd rax, dword [rbx - 0xc]
add rax, rax
cmp rax, r14
jae 0x18000bec7
call fcn.18002ce14
mov dword [rax], 0x22
call fcn.180029c34
jmp 0x18000beee
mov r8, r14
mov rcx, rbx
call fcn.180027100
jmp 0x18000beee
lea r14, [rax + rax]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, r14
lea r8, [rbp - 0x80]
mov rcx, rbx
call fcn.18000fed0
cmp edi, dword [rbx - 0xc]
jg 0x18000bfd6
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r14 + rbx], ax
lea r14, [r15 + 0x18]
lea rdi, [r15 + 0x20]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.18000b790
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18000bf30
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
cmp dword [rax - 0x10], 0
jne 0x18000bf88
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x18000bf55
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, r15
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.18001e0c0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rdx, str.MyLdsLogger.ini
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x18000bf92
mov r8d, eax
mov rcx, rdi
call fcn.18000b940
mov r9, qword [r15 + 0x20]
mov rbx, qword [rsp + 0x40]
mov r8, qword [r14]
mov rdx, qword [r15 + 8]
lea rcx, str.MyLdsLogger
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rcx, r14
call fcn.18000c050
nop
lea rdx, [rbx - 0x18]
jmp 0x18000bf42
mov ecx, 0x80070057
call fcn.180008e40
nop
mov ecx, 0x80070057
call fcn.180008e40
nop
mov ecx, 0x80004005
call fcn.180008e40
nop
mov ecx, 0x80004005
call fcn.180008e40
nop
mov ecx, 0x80070057
call fcn.180008e40
int3
mov ecx, 0x80070057
call fcn.180008e40
int3
mov ecx, 0x80070057
call fcn.180008e40
int3
mov ecx, 0x80004005
call fcn.180008e40
int3
mov ecx, 0x80004005
call fcn.180008e40
nop
mov ecx, 0x80070057
call fcn.180008e40
int3
mov ecx, 0x80070057
call fcn.180008e40
int3