Function at 0x10008bc0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10029d77
mov eax, dword fs:[0]
push eax
sub esp, 0x4fc
mov eax, dword [0x100370b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.10003b30
mov ecx, eax
test ecx, ecx
je 0x10008f7f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x500], eax
push 0x3e7
lea eax, [ebp - 0x4fc]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.10016460
add esp, 0xc
lea eax, [ebp - 0x4fc]
push 0x3e6
push eax
push 0
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x4fc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008c45
sub ecx, edx
lea eax, [ebp - 0x4fc]
push ecx
push eax
lea ecx, [ebp - 0x500]
call fcn.100088c0
mov esi, dword [ebp - 0x500]
push 0x5c
push esi
mov edi, dword [esi - 0xc]
call fcn.1001b449
add esp, 8
test eax, eax
jne 0x10008c7e
or eax, 0xffffffff
jmp 0x10008c80
sub eax, esi
sub edi, eax
lea ebx, [esi - 0x10]
lea eax, [edi - 1]
xor edi, edi
test eax, eax
cmovns edi, eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x504], eax
cmp edi, eax
jl 0x10008cb3
push ebx
call fcn.10007ac0
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x508], esi
jmp 0x10008d38
mov ecx, dword [ebx]
test ecx, ecx
je 0x10008cc4
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x10008cd2
call fcn.10003b30
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
mov eax, dword [ebp - 0x504]
sub eax, edi
add eax, esi
mov dword [ebp - 0x504], eax
test ecx, ecx
je 0x10008f89
test eax, eax
jne 0x10008cf6
test edi, edi
jne 0x10008f93
mov eax, dword [ecx]
push 1
push edi
call dword [eax]
test eax, eax
je 0x10008f9d
lea esi, [eax + 0x10]
mov dword [ebp - 0x508], esi
test edi, edi
js 0x10008f93
cmp edi, dword [esi - 8]
jg 0x10008f93
mov eax, dword [ebp - 0x504]
push edi
push eax
push edi
mov dword [esi - 0xc], edi
push esi
mov byte [edi + esi], 0
call fcn.100071a0
add esp, 0x10
lea edi, [esi - 0x10]
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x10008d8b
cmp dword [ebx + 0xc], 0
jl 0x10008d7c
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x10008d7c
push edi
call fcn.10007ac0
add esp, 4
lea edx, [ebx + 0xc]
mov esi, eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10008d71
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
lea eax, [esi + 0x10]
mov dword [ebp - 0x500], eax
jmp 0x10008d8b
push dword [esi - 0xc]
lea ecx, [ebp - 0x500]
push esi
call fcn.100088c0
or ebx, 0xffffffff
mov byte [ebp - 4], 0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10008da6
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
push str..log
push str..exe
lea ecx, [ebp - 0x500]
call fcn.10008fc0
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.10016460
add esp, 0xc
lea eax, [ebp - 0x114]
push 0
push 0x10
push eax
push 0
call dword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetSpecialFolderPathA]
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008df0
sub ecx, edx
cmp byte [ebp + ecx - 0x115], 0x5c
jne 0x10008e17
dec ecx
cmp ecx, 0x104
jae 0x10008fac
mov byte [ebp + ecx - 0x114], al
call fcn.10003b30
mov ecx, eax
test ecx, ecx
je 0x10008fa2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x504], eax
mov eax, str.c:_temp
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x504]
test eax, 0xffff0000
jne 0x10008e55
movzx eax, ax
push eax
call fcn.10008670
jmp 0x10008e61
push 7
push str.c:_temp
call fcn.100088c0
mov esi, dword [ebp - 0x500]
lea eax, [ebp - 0x114]
push esi
push eax
lea eax, [ebp - 0x504]
mov byte [ebp - 4], 3
push str._s_s
push eax
call fcn.10003980
mov edi, dword [ebp - 0x504]
push 0x20
push str.atc
push edi
call fcn.1001bb41
add esp, 0x1c
mov dword [0x10037c04], eax
test eax, eax
jne 0x10008f64
call fcn.10003b30
mov ecx, eax
test ecx, ecx
je 0x10008fb1
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x508], eax
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x508]
push str.CDebugLog::OpenFile__s_failed
push eax
call fcn.10003980
mov esi, dword [ebp - 0x508]
add esp, 0xc
push esi
call dword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringA]
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10008f0b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x500]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10008f2c
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x10008f48
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100142a9
mov esp, ebp
pop ebp
ret
push eax
push str._nStart_Loging_n
call fcn.1001b9aa
push dword [0x10037c04]
call fcn.1001b8b8
add esp, 0xc
jmp 0x10008f11
push 0x80004005
call fcn.10002040
push 0x80004005
call fcn.10002040
push 0x80070057
call fcn.10002040
call fcn.10005140
push 0x80004005
call fcn.10002040
call fcn.10014843
push 0x80004005
call fcn.10002040
int3