Function at 0x4c2af0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fc3a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7a4
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x730]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x10], esp
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [edx + 1]
and ecx, 3
cmp al, 0x3a
rep movsb byte es:[edi], byte [esi]
je 0x4c2da8
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x230]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 4], 0
mov edx, ecx
mov esi, edi
mov edi, ebx
mov bl, 0x5c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x230]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp eax, ecx
jge 0x4c2ba5
mov edx, ecx
sub edx, eax
mov dl, byte [ebp + edx - 0x230]
cmp dl, bl
mov byte [ebp + eax - 0x430], dl
jne 0x4c2ba2
cmp eax, 2
jge 0x4c2ba5
inc eax
jmp 0x4c2b83
sub ecx, eax
xor edx, edx
mov edi, ecx
cmp edx, edi
jge 0x4c2bc0
mov cl, byte [ebp + edx - 0x230]
mov byte [ebp + edx - 0x630], cl
inc edx
jmp 0x4c2bab
mov byte [ebp + edi - 0x630], 0
xor esi, esi
cmp esi, eax
jge 0x4c2bf0
lea edx, [ebp + esi - 0x22f]
mov dl, byte [edx + edi]
cmp dl, bl
je 0x4c2be5
mov byte [ebp + esi - 0x430], dl
jne 0x4c2bed
mov byte [ebp + esi - 0x430], 0
inc esi
jmp 0x4c2bca
mov byte [ebp + eax - 0x430], 0
lea edi, [ebp - 0x430]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx - 1]
mov cl, 0x2e
test eax, eax
jle 0x4c2c1d
cmp byte [ebp + eax - 0x430], cl
je 0x4c2c1d
dec eax
jmp 0x4c2c0d
push str.directory
mov ecx, 0xf558a0
mov byte [ebp + eax - 0x42c], 0
call fcn.004f0087
push 0xa
mov ecx, eax
call fcn.004eff40
push 0x402150
mov ecx, eax
call fcn.004016a0
cmp byte [ebp - 0x62e], bl
je 0x4c2c5e
mov byte [ebp - 0x62e], bl
mov byte [ebp - 0x62d], 0
lea eax, [ebp - 0x630]
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 - 0x430]
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 - 0x630]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
cmp eax, esi
jge 0x4c2cf1
cmp byte [ebp + eax - 0x630], 0x3a
je 0x4c2cf1
inc eax
jmp 0x4c2ce0
xor edx, edx
mov ecx, esi
sub ecx, eax
inc ecx
cmp edx, ecx
jge 0x4c2d10
lea ecx, [edx + eax]
inc edx
mov cl, byte [ebp + ecx - 0x631]
mov byte [ebp + edx - 0x131], cl
jmp 0x4c2cf3
mov edx, esi
sub edx, eax
cmp eax, esi
mov byte [ebp + edx - 0x12f], 0
jne 0x4c2d4d
lea eax, [ebp - 0x7b0]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [ebp - 0x7b0]
lea edx, [ebp - 0x130]
push ecx
push 0x50d39c
push edx
call fcn.004f175f
add esp, 0xc
lea eax, [ebp - 0x430]
lea ecx, [ebp - 0x130]
push eax
push ecx
lea edx, [ebp - 0x730]
push str._s_s
push edx
call fcn.004f175f
add esp, 0x10
mov ecx, 0xf558a0
push str.new::
call fcn.004f0087
lea ecx, [ebp - 0x730]
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 - 0x730]
lea ecx, [ebp - 0x30]
push edx
call fcn.00402b80
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 2
call fcn.00402d30
cmp eax, 1
jbe 0x4c2f8d
lea ecx, [ebp - 0x30]
xor ebx, ebx
call fcn.00402c10
push eax
mov ecx, 0xf558a0
call fcn.004f0087
push 0x402150
push 0xa
mov ecx, eax
call fcn.004eff40
mov ecx, eax
call fcn.004016a0
lea ecx, [ebp - 0x30]
call fcn.00402c10
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 4
jge 0x4c2e62
push str.cant_get_name....
mov ecx, 0xf558a0
call fcn.004f0087
push 0x402150
push 0xa
mov ecx, eax
call fcn.004eff40
mov ecx, eax
call fcn.004016a0
jmp 0x4c2e67
mov ebx, 1
lea ecx, [ebp - 0x30]
call fcn.00402d00
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2e81
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402cd0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2e9b
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402ca0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2eb5
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402c70
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2ecf
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2f13
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
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
inc ebx
rep movsb byte es:[edi], byte [esi]
jmp 0x4c2f36
mov edi, 0x514ba8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
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.00402be0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2f50
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402bb0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x4c2f6a
inc ebx
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
call fcn.00402ba0
mov ax, bx
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
or ax, 0xffff
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret