Function at 0x443c10
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 0x443c36
push 2
pop eax
jmp 0x443e33
push edi
push ebx
push esi
call fcn.00445de0
or dword [esi + 0x1c], 0xffffffff
add esp, 0xc
push ebx
push 0x80
push 3
push ebx
xor edi, edi
inc edi
push edi
push SysReAllocString
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x443e2a
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 0x443c87
push 0x10
jmp 0x443e29
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 0x443caa
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 0x443cc4
push 2
jmp 0x443e29
mov edi, dword [ebp - 0x18]
push 4
pop eax
jmp 0x443ccf
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jae 0x443d6c
add eax, 0x400
cmp eax, ecx
mov dword [ebp - 4], ecx
ja 0x443ce9
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 0x443d02
mov dword [ebp - 8], ecx
push ebx
mov eax, edi
mov ecx, esi
call fcn.0044216a
test eax, eax
pop ecx
jne 0x443d6c
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.0044219c
test eax, eax
pop ecx
pop ecx
je 0x443d6c
mov eax, dword [ebp - 8]
add eax, 0xfffffffd
jmp 0x443d49
mov ecx, dword [ebp - 0xc]
dec eax
cmp byte [eax + ecx], 0x50
jne 0x443d49
cmp byte [eax + ecx + 1], 0x4b
jne 0x443d49
cmp byte [eax + ecx + 2], 5
jne 0x443d49
cmp byte [eax + ecx + 3], 6
je 0x443d4f
cmp eax, ebx
jge 0x443d2a
jmp 0x443d63
add edi, eax
push ebx
mov eax, edi
mov ecx, esi
mov dword [ebp - 0x10], 1
call fcn.0044216a
pop ecx
cmp dword [ebp - 0x10], ebx
je 0x443ccc
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x10], ebx
je 0x443e27
mov eax, esi
call fcn.00442225
mov eax, esi
call fcn.004421d6
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.004421d6
mov dword [ebp - 0x18], eax
mov eax, esi
call fcn.004421d6
movzx eax, ax
mov dword [esi + 0x10], eax
mov eax, esi
call fcn.004421d6
cmp dword [esi + 8], ebx
jne 0x443e23
movzx eax, ax
cmp eax, dword [esi + 0x10]
jne 0x443e27
cmp word [ebp - 0x18], bx
jne 0x443e27
cmp word [ebp - 0x14], bx
jne 0x443e27
mov eax, esi
call fcn.00442225
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.00442225
mov dword [esi + 0x24], eax
mov eax, esi
call fcn.004421d6
cmp dword [esi + 8], ebx
movzx eax, ax
mov dword [esi + 0x14], eax
jne 0x443e23
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 0x443e23
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 0x443e33
push 6
jmp 0x443e29
push 8
pop edi
push esi
call fcn.004429a1
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret