Function at 0x44d570
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, 0x188
push edi
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov esi, eax
cmp esi, ebx
jne 0x44d596
push 2
pop eax
jmp 0x44d793
push edi
push ebx
push esi
call fcn.0044fdc0
or dword [esi + 0x1c], 0xffffffff
add esp, 0xc
push ebx
push 0x80
push 3
push ebx
xor edi, edi
inc edi
push edi
push SysReAllocStringLen
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x44d78a
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_SetFilePointer]
push ebx
push ebx
push eax
call edi
cmp eax, 0xffffffff
mov dword [esi + 0xc], eax
jne 0x44d5e7
push 0x10
jmp 0x44d789
push 2
push ebx
push ebx
push dword [esi + 4]
mov dword [ebp - 0x10], ebx
call edi
mov ecx, eax
sub ecx, dword [esi + 0xc]
mov eax, 0xffff
cmp ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jae 0x44d60a
mov dword [ebp - 0x14], ecx
push 0x404
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
cmp eax, ebx
mov dword [ebp - 0xc], eax
jne 0x44d624
push 2
jmp 0x44d789
mov edi, dword [ebp - 0x18]
push 4
pop eax
jmp 0x44d62f
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jae 0x44d6cc
add eax, 0x400
cmp eax, ecx
mov dword [ebp - 4], ecx
ja 0x44d649
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x18]
mov edi, ecx
sub edi, dword [ebp - 4]
mov eax, 0x404
sub ecx, edi
cmp ecx, eax
mov dword [ebp - 8], eax
ja 0x44d662
mov dword [ebp - 8], ecx
push ebx
mov eax, edi
mov ecx, esi
call fcn.0044baca
test eax, eax
pop ecx
jne 0x44d6cc
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.0044bafc
test eax, eax
pop ecx
pop ecx
je 0x44d6cc
mov eax, dword [ebp - 8]
add eax, 0xfffffffd
jmp 0x44d6a9
mov ecx, dword [ebp - 0xc]
dec eax
cmp byte [eax + ecx], 0x50
jne 0x44d6a9
cmp byte [eax + ecx + 1], 0x4b
jne 0x44d6a9
cmp byte [eax + ecx + 2], 5
jne 0x44d6a9
cmp byte [eax + ecx + 3], 6
je 0x44d6af
cmp eax, ebx
jge 0x44d68a
jmp 0x44d6c3
add edi, eax
push ebx
mov eax, edi
mov ecx, esi
mov dword [ebp - 0x10], 1
call fcn.0044baca
pop ecx
cmp dword [ebp - 0x10], ebx
je 0x44d62c
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
cmp dword [ebp - 0x10], ebx
je 0x44d787
mov eax, esi
call fcn.0044bb85
mov eax, esi
call fcn.0044bb36
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.0044bb36
mov dword [ebp - 0x18], eax
mov eax, esi
call fcn.0044bb36
movzx eax, ax
mov dword [esi + 0x10], eax
mov eax, esi
call fcn.0044bb36
cmp dword [esi + 8], ebx
jne 0x44d783
movzx eax, ax
cmp eax, dword [esi + 0x10]
jne 0x44d787
cmp word [ebp - 0x18], bx
jne 0x44d787
cmp word [ebp - 0x14], bx
jne 0x44d787
mov eax, esi
call fcn.0044bb85
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.0044bb85
mov dword [esi + 0x24], eax
mov eax, esi
call fcn.0044bb36
cmp dword [esi + 8], ebx
movzx eax, ax
mov dword [esi + 0x14], eax
jne 0x44d783
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x14]
add edx, ecx
lea ebx, [eax + edi]
cmp ebx, edx
jb 0x44d783
sub eax, ecx
sub eax, dword [ebp - 0x14]
add eax, edi
mov dword [esi + 0x18], eax
lea eax, [esi + 0x84]
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
mov eax, dword [ebp + 8]
mov dword [eax], esi
xor eax, eax
jmp 0x44d793
push 6
jmp 0x44d789
push 8
pop edi
push esi
call fcn.0044c301
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret