Function at 0x6e1c319c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x28c
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x26d], al
mov dword [ebp - 0x20], sym.QtCore4.dll_QListData::shared_null
lock inc dword [sym.QtCore4.dll_QListData::shared_null]
setne al
cmp byte [ebp - 0x26d], 0
je 0x6e1c35dc
mov dword [ebp - 0x25c], 0
lea edx, [ebp - 0x250]
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0x258], edx
mov dword [ebp - 0x260], 0x104
mov dword [esp + 4], 0x104
mov eax, dword [ebp - 0x26c]
mov dword [esp], eax
call sub.KERNEL32.dll_GetSystemDirectoryW
sub esp, 8
mov esi, eax
cmp eax, 0x104
jbe 0x6e1c32f1
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x274], esi
cmp esi, eax
jl 0x6e1c3584
mov ebx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov edi, esi
cmp esi, edx
jg 0x6e1c3570
cmp eax, dword [ebp - 0x274]
je 0x6e1c32ac
mov eax, dword [ebp - 0x274]
shl eax, 1
mov dword [esp], eax
call sym.QtCore4.dll_qMalloc_unsigned_int_
mov dword [ebp - 0x258], eax
test eax, eax
je 0x6e1c367a
mov dword [ebp - 0x25c], 0
mov edx, dword [ebp - 0x274]
mov dword [ebp - 0x260], edx
test edi, edi
jle 0x6e1c32ac
xor eax, eax
nop
shl eax, 1
mov edx, eax
add edx, dword [ebp - 0x258]
je 0x6e1c329b
mov ax, word [ebx + eax]
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
inc eax
mov dword [ebp - 0x25c], eax
cmp eax, edi
jl 0x6e1c3288
mov dword [ebp - 0x25c], edi
cmp dword [ebp - 0x26c], ebx
je 0x6e1c32d0
cmp ebx, dword [ebp - 0x258]
je 0x6e1c32d0
mov dword [esp], ebx
call sym.QtCore4.dll_qFree_void_
mov edi, dword [ebp - 0x25c]
cmp esi, edi
jle 0x6e1c32da
mov dword [ebp - 0x25c], esi
mov ebx, dword [ebp - 0x258]
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.KERNEL32.dll_GetSystemDirectoryW
sub esp, 8
mov esi, eax
lea ebx, [ebp - 0x30]
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x258]
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.QString.fromWCharArray_wchar_t_const__int_
push edx
mov eax, dword [ebp - 0x258]
cmp dword [ebp - 0x26c], eax
je 0x6e1c3321
mov dword [esp], eax
call sym.QtCore4.dll_qFree_void_
mov dword [esp + 4], ebx
lea eax, [ebp - 0x20]
mov dword [esp], eax
call fcn.6e244f70
mov eax, dword [ebp - 0x30]
lock dec dword [eax]
setne dl
test dl, dl
je 0x6e1c35cc
cmp byte [ebp - 0x26d], 0
jne 0x6e1c33db
mov dword [esp], str.PATH
call sub.msvcrt.dll__wgetenv
lea ebx, [ebp - 0x40]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.QString.fromWCharArray_wchar_t_const__int_
push eax
mov word [ebp - 0x1a], 0x3b
lea esi, [ebp - 0x34]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 1
lea eax, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call method.QString.split_QChar_const__QString::SplitBehavior__Qt::CaseSensitivity__const
push edi
mov dword [esp + 4], esi
lea edx, [ebp - 0x20]
mov dword [esp], edx
call fcn.6e2452d4
mov eax, dword [ebp - 0x34]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x6e1c33ca
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.6e244e74
mov eax, dword [ebp - 0x40]
lock dec dword [eax]
setne dl
test dl, dl
je 0x6e1c365d
lea ebx, [ebp - 0x3c]
mov dword [esp + 8], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.QString.fromWCharArray_wchar_t_const__int_
push ecx
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 8]
add eax, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
call method.QString.QString_int__Qt::Initialization_
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
dec eax
je 0x6e1c364c
lea edx, [ebp - 0x38]
mov dword [esp], edx
call method.QString.realloc__
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + 8]
shl ecx, 1
mov esi, dword [edx + 0xc]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov dl, 0x2e
mov eax, str..dll
lea esi, [esi]
inc eax
movzx edx, dl
mov word [edi], dx
add edi, 2
mov dl, byte [eax]
test dl, dl
jne 0x6e1c344c
mov eax, dword [ebp - 0x3c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x6e1c35ac
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
test edx, edx
jle 0x6e1c3698
xor edi, edi
lea ebx, [ebp - 0x40]
jmp 0x6e1c349c
inc edi
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edi, edx
jge 0x6e1c3538
lea edx, [ecx + edi + 4]
mov eax, dword [eax + edx*4 + 4]
mov dword [ebp - 0x40], eax
lock inc dword [eax]
setne dl
mov word [ebp - 0x1c], 0x5c
mov dword [esp + 8], 1
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.QString.endsWith_QChar_const__Qt::CaseSensitivity__const
test al, al
jne 0x6e1c34dd
mov word [esp + 4], 0x5c
mov dword [esp], ebx
call method.QString.append_QChar_
lea edx, [ebp - 0x38]
mov dword [esp + 4], edx
mov dword [esp], ebx
call method.QString.append_QString_const_
mov dword [esp], ebx
call method.QString.utf16___const
mov dword [esp], eax
call sub.KERNEL32.dll_LoadLibraryW
push edx
mov esi, eax
test eax, eax
jne 0x6e1c3590
mov eax, dword [ebp - 0x40]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x6e1c3488
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call method.QString.free_QString::Data_
inc edi
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edi, edx
jl 0x6e1c349c
nop
mov eax, dword [ebp - 0x38]
lock dec dword [eax]
setne dl
test dl, dl
je 0x6e1c35bc
mov eax, dword [ebp - 0x20]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x6e1c3564
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20]
mov dword [esp], eax
call fcn.6e244e74
mov eax, esi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov edi, edx
cmp eax, dword [ebp - 0x274]
jne 0x6e1c324d
jmp 0x6e1c32ac
mov dword [ebp - 0x274], eax
jmp 0x6e1c322f
mov eax, dword [ebp - 0x40]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x6e1c3538
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c3538
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c346d
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c3545
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c3341
lea edi, [ebp - 0x24]
mov dword [esp], edi
call sym.QtCore4.dll_qAppFileName__
push edx
mov dword [esp + 4], edi
lea ebx, [ebp - 0x28]
mov dword [esp], ebx
call method.QFileInfo.QFileInfo_QString_const_
lea esi, [ebp - 0x2c]
mov dword [esp + 4], ebx
mov dword [esp], esi
call method.QFileInfo.path___const
push eax
mov dword [esp + 4], esi
lea eax, [ebp - 0x20]
mov dword [esp], eax
call fcn.6e244f70
mov eax, dword [ebp - 0x2c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x6e1c366d
mov dword [esp], ebx
call method.QFileInfo.QFileInfo__
mov eax, dword [ebp - 0x24]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x6e1c31cf
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c31cf
lea eax, [edx + 0x12]
cmp dword [edx + 0xc], eax
jne 0x6e1c3422
jmp 0x6e1c3433
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c33db
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call method.QString.free_QString::Data_
jmp 0x6e1c3623
call sym.QtCore4.dll_qBadAlloc__
mov ecx, dword [ebp - 0x258]
test ecx, ecx
jne 0x6e1c326b
mov dword [ebp - 0x258], ebx
jmp 0x6e1c32e0
xor esi, esi
jmp 0x6e1c3538