Function at 0x4467a0
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 0x4467c6
push 2
pop eax
jmp 0x4469c3
push edi
push ebx
push esi
call fcn.00448970
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 0x4469ba
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 0x446817
push 0x10
jmp 0x4469b9
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 0x44683a
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 0x446854
push 2
jmp 0x4469b9
mov edi, dword [ebp - 0x18]
push 4
pop eax
jmp 0x44685f
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jae 0x4468fc
add eax, 0x400
cmp eax, ecx
mov dword [ebp - 4], ecx
ja 0x446879
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 0x446892
mov dword [ebp - 8], ecx
push ebx
mov eax, edi
mov ecx, esi
call fcn.00444cfa
test eax, eax
pop ecx
jne 0x4468fc
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.00444d2c
test eax, eax
pop ecx
pop ecx
je 0x4468fc
mov eax, dword [ebp - 8]
add eax, 0xfffffffd
jmp 0x4468d9
mov ecx, dword [ebp - 0xc]
dec eax
cmp byte [eax + ecx], 0x50
jne 0x4468d9
cmp byte [eax + ecx + 1], 0x4b
jne 0x4468d9
cmp byte [eax + ecx + 2], 5
jne 0x4468d9
cmp byte [eax + ecx + 3], 6
je 0x4468df
cmp eax, ebx
jge 0x4468ba
jmp 0x4468f3
add edi, eax
push ebx
mov eax, edi
mov ecx, esi
mov dword [ebp - 0x10], 1
call fcn.00444cfa
pop ecx
cmp dword [ebp - 0x10], ebx
je 0x44685c
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
cmp dword [ebp - 0x10], ebx
je 0x4469b7
mov eax, esi
call fcn.00444db5
mov eax, esi
call fcn.00444d66
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.00444d66
mov dword [ebp - 0x18], eax
mov eax, esi
call fcn.00444d66
movzx eax, ax
mov dword [esi + 0x10], eax
mov eax, esi
call fcn.00444d66
cmp dword [esi + 8], ebx
jne 0x4469b3
movzx eax, ax
cmp eax, dword [esi + 0x10]
jne 0x4469b7
cmp word [ebp - 0x18], bx
jne 0x4469b7
cmp word [ebp - 0x14], bx
jne 0x4469b7
mov eax, esi
call fcn.00444db5
mov dword [ebp - 0x14], eax
mov eax, esi
call fcn.00444db5
mov dword [esi + 0x24], eax
mov eax, esi
call fcn.00444d66
cmp dword [esi + 8], ebx
movzx eax, ax
mov dword [esi + 0x14], eax
jne 0x4469b3
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 0x4469b3
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 0x4469c3
push 6
jmp 0x4469b9
push 8
pop edi
push esi
call fcn.00445531
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret