Function at 0x4c23b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fc368
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8a4
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x10], esp
push ebx
call fcn.004fa6c0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x330]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [ebx + 1]
and ecx, 3
cmp al, 0x3a
rep movsb byte es:[edi], byte [esi]
je 0x4c2661
push ebx
mov dword [ebp - 4], 0
call fcn.004fa6c0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x8b0]
mov eax, ecx
mov esi, edi
mov edi, edx
mov bl, 0x5c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x8b0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp eax, ecx
jge 0x4c2479
mov edx, ecx
sub edx, eax
mov dl, byte [ebp + edx - 0x8b0]
cmp dl, bl
mov byte [ebp + eax - 0x6b0], dl
jne 0x4c2476
cmp eax, 2
jge 0x4c2479
inc eax
jmp 0x4c2457
sub ecx, eax
xor edx, edx
mov edi, ecx
cmp edx, edi
jge 0x4c2494
mov cl, byte [ebp + edx - 0x8b0]
mov byte [ebp + edx - 0x230], cl
inc edx
jmp 0x4c247f
mov byte [ebp + edi - 0x230], 0
xor esi, esi
cmp esi, eax
jge 0x4c24c4
lea edx, [ebp + esi - 0x8af]
mov dl, byte [edx + edi]
cmp dl, bl
je 0x4c24b9
mov byte [ebp + esi - 0x6b0], dl
jne 0x4c24c1
mov byte [ebp + esi - 0x6b0], 0
inc esi
jmp 0x4c249e
push str.directory
mov ecx, 0xf558a0
mov byte [ebp + eax - 0x6b0], 0
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
cmp byte [ebp - 0x22e], bl
je 0x4c2505
mov byte [ebp - 0x22e], bl
mov byte [ebp - 0x22d], 0
lea eax, [ebp - 0x230]
mov ecx, 0xf558a0
push eax
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
push str.file
mov ecx, 0xf558a0
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
lea ecx, [ebp - 0x6b0]
push ecx
mov ecx, 0xf558a0
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
lea edi, [ebp - 0x230]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
cmp eax, esi
jge 0x4c2598
cmp byte [ebp + eax - 0x230], 0x3a
je 0x4c2598
inc eax
jmp 0x4c2587
xor edx, edx
mov ecx, esi
sub ecx, eax
inc ecx
cmp edx, ecx
jge 0x4c25b7
lea ecx, [edx + eax]
inc edx
mov cl, byte [ebp + ecx - 0x231]
mov byte [ebp + edx - 0x431], cl
jmp 0x4c259a
mov edx, esi
sub edx, eax
cmp eax, esi
mov byte [ebp + edx - 0x42f], 0
jne 0x4c25f4
lea eax, [ebp - 0x4b0]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [ebp - 0x4b0]
lea edx, [ebp - 0x430]
push ecx
push 0x50d39c
push edx
call fcn.004f175f
add esp, 0xc
lea eax, [ebp - 0x6b0]
push eax
call fcn.004fa6c0
add esp, 4
lea ecx, [ebp - 0x430]
push eax
push ecx
call fcn.004fa6c0
add esp, 4
lea edx, [ebp - 0x330]
push eax
push str._s_s
push edx
call fcn.004f175f
add esp, 0x10
mov ecx, 0xf558a0
push str.new::
call fcn.004f0087
lea ecx, [ebp - 0x330]
push ecx
mov ecx, eax
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x330]
push edx
call fcn.004fa6c0
add esp, 4
lea ecx, [ebp - 0x30]
push eax
call fcn.00402b80
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 2
call fcn.00402d30
cmp eax, 1
jbe 0x4c274e
lea ecx, [ebp - 0x30]
call fcn.00402c40
or ebx, 0xffffffff
mov edi, eax
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 4
jge 0x4c26fe
mov edi, 0x514ba8
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 4], ebx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4c2778
lea ecx, [ebp - 0x30]
call fcn.00402c40
push eax
call fcn.004fa6c0
mov edi, eax
mov ecx, ebx
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 4], ebx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x30]
call fcn.00402ba0
mov ax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, 0x514ba8
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 4], 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x30]
call fcn.00402ba0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor ax, ax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret