Function at 0x4d94b9
Capabilities:
Gather total-commander information
Query environment variable

Disassembly:
push 0x144
mov eax, 0x515dbf
call fcn.005060cc
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x11c], ebx
or edi, 0xffffffff
mov dword [ebp - 0x150], SHLockShared
mov dword [ebp - 0x14c], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x13c], eax
and dword [ebp - 0x148], 0
and dword [ebp - 0x144], 0
and dword [ebp - 0x140], 0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x148]
push 0x20019
push str.SoftwareGhislerTotal_Commander
push dword [ebp + eax*4 - 0x150]
call fcn.00407e8e
test eax, eax
jne 0x4d97e6
push ecx
mov ecx, esp
push str.InstallDir
call fcn.004094e6
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x148]
call fcn.00414568
push ecx
mov ecx, esp
mov byte [ebp - 4], 1
push str.IniFileName
call fcn.004094e6
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x148]
call fcn.00414568
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x124]
cmp dword [esi - 0xc], 0
je 0x4d97a4
mov eax, dword [ebp - 0x120]
cmp dword [eax - 0xc], 0
je 0x4d97aa
push 0x105
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x104
push eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
call esi
lea ecx, [ebp - 0x118]
call fcn.004227d2
lea eax, [ebp - 0x118]
push eax
call fcn.004f5d90
pop ecx
push eax
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x124]
call fcn.0040942f
push 0x104
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x120]
call esi
mov eax, dword [ebp - 0x118]
test al, al
je 0x4d9667
test ah, ah
je 0x4d9667
cmp al, 0x5c
jne 0x4d9612
cmp ah, al
je 0x4d9667
movsx eax, al
push eax
call fcn.004f9624
pop ecx
test eax, eax
je 0x4d9629
cmp byte [ebp - 0x117], 0x3a
je 0x4d9667
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x138]
call fcn.004094e6
mov byte [ebp - 4], 3
lea edx, [ebp - 0x124]
or ebx, 1
lea ecx, [ebp - 0x134]
push eax
mov dword [ebp - 0x11c], ebx
call fcn.0040a740
pop ecx
mov dword [ebp - 4], 4
or ebx, 2
jmp 0x4d9683
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x130]
call fcn.004094e6
mov dword [ebp - 4], 5
or ebx, 4
mov edx, dword [eax]
mov esi, dword [ebp - 0x120]
add esi, 0xfffffff0
mov dword [ebp - 0x11c], ebx
lea ecx, [edx - 0x10]
cmp ecx, esi
je 0x4d96e8
cmp dword [esi + 0xc], 0
jl 0x4d96d9
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4d96d9
call fcn.004098e7
mov dword [ebp - 0x12c], eax
lea edx, [esi + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4d96ce
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x12c]
add eax, 0x10
mov dword [ebp - 0x120], eax
jmp 0x4d96e8
push dword [edx - 0xc]
lea ecx, [ebp - 0x120]
push edx
call fcn.0040942f
mov dword [ebp - 4], 4
test bl, 4
je 0x4d971a
mov edx, dword [ebp - 0x130]
and ebx, 0xfffffffb
mov dword [ebp - 0x11c], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d971a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 3
test bl, 2
je 0x4d974c
mov edx, dword [ebp - 0x134]
and ebx, 0xfffffffd
mov dword [ebp - 0x11c], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d974c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 2
test bl, 1
je 0x4d977e
mov edx, dword [ebp - 0x138]
and ebx, 0xfffffffe
mov dword [ebp - 0x11c], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d977e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x120]
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeA]
lea ecx, [ebp - 0x118]
call fcn.00423518
test eax, eax
jne 0x4d9888
mov eax, dword [ebp - 0x120]
lea edx, [eax - 0x10]
mov byte [ebp - 4], 1
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d97c5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, edi
mov edx, dword [ebp - 0x124]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d97e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x148]
mov dword [ebp - 4], edi
call fcn.00408049
mov eax, dword [ebp - 0x13c]
inc eax
mov dword [ebp - 0x13c], eax
cmp eax, 2
jl 0x4d94ef
lea ecx, [ebp - 0x138]
call fcn.004238af
push str.wincmd.ini
mov edx, eax
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x128]
call fcn.00405cb9
pop ecx
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x138]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d9850
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x128]
call fcn.00423518
test eax, eax
je 0x4d98ed
mov ecx, dword [ebp - 0x128]
lea ecx, [ecx - 0x10]
call fcn.004098e7
lea esi, [eax + 0x10]
mov dword [ebp - 0x134], esi
mov byte [ebp - 4], 9
or ebx, 0x10
mov ecx, esi
jmp 0x4d990f
lea eax, [ebp - 0x118]
mov esi, 0xd5cc3c
push eax
mov ecx, esi
call fcn.004094e6
mov byte [ebp - 4], 1
mov eax, edi
mov edx, dword [ebp - 0x120]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d98bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x124]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x4d98db
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x148]
call fcn.00408049
mov eax, esi
jmp 0x4d99a0
push 0x51e784
lea ecx, [ebp - 0x130]
call fcn.004094e6
mov dword [ebp - 4], 0xa
or ebx, 0x20
mov ecx, dword [eax]
mov esi, dword [ebp - 0x134]
add ecx, 0xfffffff0
mov dword [ebp - 0x11c], ebx
call fcn.004098e7
add eax, 0x10
mov dword [ebp - 4], 9
or ebx, 8
mov dword [0xd5cc3c], eax
test bl, 0x20
je 0x4d995a
mov edx, dword [ebp - 0x130]
and ebx, 0xffffffdf
mov dword [ebp - 0x11c], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4d995a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 8
test bl, 0x10
je 0x4d997d
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4d997d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], edi
mov edx, dword [ebp - 0x128]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x4d999b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xd5cc3c
call fcn.00506076
ret