Function at 0x23b2fb70
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x23bda65c
mov eax, dword fs:[0]
push eax
sub esp, 0x238
mov eax, dword [0x23c68938]
xor eax, esp
mov dword [esp + 0x234], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x23c68938]
xor eax, esp
push eax
lea eax, [esp + 0x24c]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax + 0x150]
call edx
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x23b2ff18
cmp dword [ebx + 8], 0
je 0x23b2ff18
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x40]
mov eax, dword [eax + 0x2c]
inc ecx
cmp ecx, eax
jge 0x23b2fc48
mov eax, dword [esi + 0x40]
add eax, 1
mov ecx, dword [esi + 0xb8]
js 0x23b2fbfe
cmp eax, dword [ecx + 0x2c]
jge 0x23b2fbfe
mov edx, dword [ecx + 0x28]
mov edi, dword [edx + eax*4]
lea eax, [edx + eax*4]
jmp 0x23b2fc00
xor edi, edi
mov eax, dword [esi]
mov edx, dword [eax + 0x154]
mov ebp, dword [edi + 0x44]
mov ecx, esi
call edx
cmp ebp, eax
jl 0x23b2fc48
mov eax, dword [esi]
mov edx, dword [eax + 0x154]
mov ebp, dword [edi + 0x44]
mov ecx, esi
call edx
add eax, dword [ebx + 4]
cmp ebp, eax
jg 0x23b2fc48
mov ecx, dword [esi + 0xb8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x50]
push edi
call edx
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x40]
mov eax, dword [eax + 0x2c]
inc ecx
cmp ecx, eax
jl 0x23b2fbe0
mov ecx, dword [esi + 0xc0]
call fcn.23ae4e60
test eax, eax
je 0x23b2fc6f
mov edx, dword [esi]
mov eax, dword [edx + 0x60]
mov dword [esi + 0x90], 0
push 1
mov ecx, esi
jmp 0x23b2ff16
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
xor ebp, ebp
cmp dword [ecx - 0xc], ebp
jne 0x23b2fc8e
mov edx, dword [esi]
mov eax, dword [edx + 0x60]
mov dword [esi + 0x90], ebp
push ebp
mov ecx, esi
jmp 0x23b2ff16
or dword [esi + 0x90], 1
lea ecx, [esp + 0x3c]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea edx, [esp + 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
mov eax, 0x5c
mov word [esp + edi*2 + 0x3c], ax
lea edx, [ebx + 0x1c]
inc edi
xor ecx, ecx
push str.PinableRecentFileList
push edx
mov dword [esp + 0x40], edi
mov word [esp + edi*2 + 0x44], cx
call fcn.23a27b40
movzx eax, al
add esp, 8
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], eax
call fcn.23a0f0c0
lea ecx, [esp + 0x34]
mov dword [esp + 0x254], ebp
call fcn.23a0f0c0
cmp dword [ebx + 4], 0
mov byte [esp + 0x254], 1
jle 0x23b2fec5
jmp 0x23b2fd16
mov edi, dword [esp + 0x38]
mov ebx, eax
mov edx, dword [ebx]
mov edx, dword [edx + 8]
push 1
push edi
lea eax, [esp + 0x44]
push eax
push ebp
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebx
call edx
test eax, eax
je 0x23b2fec5
cmp dword [esp + 0x28], 0
je 0x23b2fe54
lea ecx, [ebx - 0x20]
push ebp
call fcn.23b5fa10
mov ebx, eax
test ebx, ebx
je 0x23b2fdbc
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
call fcn.23afd3d0
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
mov eax, dword [esp + 0x20]
setne byte [esp + 0x17]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x23b2fd86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x23b2fdbc
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebx
call fcn.23afd3d0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x258], 2
call fcn.23a11600
lea ecx, [esp + 0x30]
mov byte [esp + 0x254], 1
call fcn.23a0f0f0
mov edx, dword [esi]
mov eax, dword [edx + 0x154]
mov ecx, esi
call eax
mov ecx, dword [esi + 0x40]
push 1
lea edx, [ecx + ebp + 1]
mov ecx, dword [esi + 0xb8]
push edx
push 0x23c40f6c
add eax, ebp
push eax
push 1
call fcn.23b33030
mov edi, eax
lea eax, [ebp + 1]
push eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.23b2f280
add esp, 0xc
mov eax, dword [eax]
push eax
mov ecx, edi
mov byte [esp + 0x258], 3
call fcn.23b017b0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x254], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x23b2fe3d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 8
mov ecx, edi
call fcn.23afe520
test ebp, ebp
jne 0x23b2fe5b
cmp dword [esi + 0x40], ebp
je 0x23b2fe5b
lea eax, [ebp + 1]
jmp 0x23b2fe5d
xor ebx, ebx
jmp 0x23b2fdbc
xor eax, eax
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x5c]
mov ecx, edi
call eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
mov eax, dword [edx + ebp*4]
push eax
mov ecx, edi
call fcn.23b2fb30
test ebx, ebx
je 0x23b2fe91
mov ebx, dword [ebx + 0x24]
cmp dword [edi + 0x48], ebx
je 0x23b2fe91
push 0
mov ecx, edi
mov dword [edi + 0x48], ebx
call fcn.23afe9d0
mov ecx, esi
call fcn.23b04160
test al, al
jns 0x23b2feb4
test ebp, ebp
jne 0x23b2feb4
mov ecx, edi
call fcn.23b04160
or eax, 0x80
push eax
mov ecx, edi
call fcn.23afe520
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
cmp ebp, dword [eax + 4]
jl 0x23b2fd10
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x254], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x23b2feed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x254], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x23b2ff18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x234]
xor ecx, esp
call fcn.23a4addf
add esp, 0x244
ret 4